para-bridge-demo
Version:
a bridge api for js-ios/andriod rest
43 lines (36 loc) • 1.25 kB
text/typescript
import { BridgePlugin } from '../bridge';
import { get } from 'para-utils';
interface IContactItem {
// 联系人姓名
contactName: string;
// 联系人电话号码数组
phones: string[];
}
interface IGetAllContactsResult {
// 获取联系人状态, "0"成功|"1"获取失败
status: '0' | '1';
contactList: IContactItem[];
}
export class GetAllContacts<K> extends BridgePlugin<void, K>{
protected get ntvPluginName() {
return '_ntv_user_get_all_contacts';
}
protected get availableMinVersion() {
return '1.0.0';
}
protected bridgeExecChrome(pluginName?: string | undefined): void {
// 可针对不同运行环境实现特定的调用逻辑来MOCK,弥补平台差异性.
throw new Error('GetAllContacts() 未针对当前环境实现');
}
}
/**
* 不打开通讯录列表,静默尝试拉取所有的联系人信息, 以及每个联系人的手机号列表
* @returns IContactItem[]
*/
export const getAllContacts = () => {
return new GetAllContacts<IGetAllContactsResult>().invokeOnce().then(result => {
const status = get(result.cbData, 'status', '0');
const contacts = get(result.cbData, 'contactList', []);
return (status === '0' ? contacts : []) as IContactItem[];
});
}