mui.plusReady(function() { getContactsFromPhone(function(contactsArr) { }); }); var contact_arr = []; //保存通讯录具体信息 /** * @param callback contactsArr 数组:value: i, name:姓名,phone:手机号 */ function getContactsFromPhone(callback) { //先清空变量,不要在方法内重复定义变量! contact_arr.splice(0, contact_arr.length); //提取用户手机联系人 传给数据源contact_arr plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, function(addressbook) { addressbook.find(["displayName", "phoneNumbers"], function(contacts) { for(var i = 0; i < contacts.length; i++) { //要不要分页查询? //contact_arr_text是contact_arr数据源中每一个item用于显示的值 此处为联系人名称+手机号 //这里一定要判断联系人名称不为空 一旦漏判undefined后面所有逻辑都不会执行!! if(contacts[i] !== undefined && contacts[i].displayName !== undefined) { //判断用户的手机号码不为空时 取手机号码 if(contacts[i].phoneNumbers[0] !== undefined) { var contact_arr_name = contacts[i].displayName; var contact_arr_phone = contacts[i].phoneNumbers[0].value; } //若手机号为空 则判断住宅号是否为空 不为空就用住宅号码 若住宅号码也为空 这个用户就不显示了 else if(contacts[i].phoneNumbers[1] !== undefined) { var contact_arr_name = contacts[i].displayName; var contact_arr_phone = contacts[i].phoneNumbers[1].value; } } //console.log(JSON.stringify(contact_arr_text)); // "测试\t18226922502" //将数据传给数据源 contact_arr[i] = { value: i, name: contact_arr_name.replace(' ','').replace('-',''), phone: contact_arr_phone.replace(' ','').replace('-','') }; } callback(contact_arr); }, false); }, function(e) { plus.ui.toast("未能获取到联系人数据!"); callback(contact_arr); }); }
有任何疑问或技术合作都可联系我
微信:yanfahezuo 【推荐】
QQ:596957738