一样的代码,在大部分android手机和苹果设备上都能运行,
但是在华为g7-t100上无法获取通讯录,也没有任何提示。
通过设置alert,发现 plus.contacts.getAddressBook似乎没有运行,
success和error回调都没有弹窗,是否框架兼容问题?烦请回复,谢谢!
var filtercontent = {
filter: [{
logic: "or",
field: "phoneNumbers",
value: "1?*"
}],
multiple: true
};
var optUsername = plus.storage.getItem(STORAGE_ITEM_NAME);
var optOptMsisdn = plus.storage.getItem(STORAGE_ITEM_MSISDN);
if (optOptMsisdn == undefined || optOptMsisdn == null) {
mui.alert('工号已超时,请退出后重新登录!');
return;
}
if (plus.os.name == 'iOS') {
filtercontent = {
multiple: true
};
}
if (plus.contacts == undefined || plus.contacts.ADDRESSBOOK_PHONE == undefined) {
mui.alert("请从系统设置中设置\n开启通讯录访问\n后重试", "权限不足");
return;
}
///到这里能正常运行*********
plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, function(addressbook) {
addressbook.find(["displayName", "phoneNumbers"], function(contacts) {
//清空原有朋友圈数据
document.getElementById('friend').innerHTML = "";
alert('kaidkdkla'+contacts.length);
mui.each(contacts, function(index, contact) {
var displayname = contact.displayName;
// mui.toast('查找成功' + displayname + "\n" + contacts.length);
if (contact.phoneNumbers == null) {
return;
}
mui.each(contact.phoneNumbers, function(idx_number, number) {
// mui.toast('测试号码' + number.value);
//兼容ios上号码自带的 - 符号或者前置的 +86区号
var tmp = "" + number.value;
tmp = tmp.replace(/-/gi, "").replace('+86', "").trim();
// 过度过滤,有些号码被过滤掉。
if (!TEL_REG.test(tmp)) {
//过滤无效手机号码
return;
}
//对于有效号码,进行查询,并根据结果进行展示
initFriendItem(optUsername, optOptMsisdn, tmp, displayname);
});
});
},
function(e) {
alert("Find contact error: " +
e.message);
}, filtercontent);
}, function(e) {
alert('获取通讯录失败\n');
});
1 个回复
Float - 专注
请问问题怎么解决的?麻烦说一下,谢谢