您的位置:首页 > 产品设计 > UI/UE

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

2015-11-21 00:33 387 查看
有的时候卡了一下午的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("未能获取到手机通讯录!");
})

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: