UNPKG

para-bridge-demo

Version:

a bridge api for js-ios/andriod rest

43 lines (36 loc) 1.25 kB
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[]; }); }