关闭

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

标签: h5mui框架hbuilder
4915人阅读 评论(0) 收藏 举报
分类:
    有的时候卡了一下午的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("未能获取到手机通讯录!");
}) 

2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18759次
    • 积分:341
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:11篇
    • 译文:0篇
    • 评论:4条
    最新评论