获取手机联系人+滚动选择器(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("未能获取到手机通讯录!");
}) 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014727233/article/details/49955875
文章标签: h5 mui框架 hbuilder
个人分类: MUI移动开发
想对作者说点什么? 我来说一句

mui示例及帮助文档

2016年07月01日 3.65MB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭