获取手机联系人+滚动选择器(MUI移动开发框架)

    有的时候卡了一下午的bug,过一会回头一眼就看出问题了,不知道是该高兴还是悲哀,以下是获取手机联系人并加入滚动选择器(picker)的部分代码,没有整理,注意联系人数据中的phoneNumber这个属性,0是手机号码,1是住宅号码,必须判断是否为undefined,漏判undefined可能导致后面的逻辑执行不下去,下午我就是把返回按钮的监听放联系人提取后面,联系人出现undefined,我连返回都返回不了了
showUserPickerButton.addEventListener('tap', function(event) {
//提取用户手机联系人 传给数据源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_text = contacts[i].displayName + "\t" + contacts[i].phoneNumbers[0].value;
}
//若手机号为空 则判断住宅号是否为空 不为空就用住宅号码 若住宅号码也为空 这个用户就不显示了
else if (contacts[i].phoneNumbers[1] !== undefined) {
var contact_arr_text = contacts[i].displayName + "\t" + contacts[i].phoneNumbers[1].value;
}
}
console.log(contact_arr_text);
//将数据传给数据源
contact_arr[i] = {
value: i,
text: contact_arr_text
};
}
//联系人数据提取关闭加载到选择器中
userPicker.setData(contact_arr);
userPicker.show(function(items) {
// userResult.innerText = JSON.stringify(items[0]);
//返回 false 可以阻止选择框的关闭
//return false;
});
}, false);
}, function(e) {
plus.ui.toast("未能获取到联系人数据!");
})
}, function(e) {
plus.ui.toast("未能获取到手机通讯录!");
})  

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值