MUI-读取手机通讯录
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);
});
}
正文到此结束