二八中医
二八中医
  • 发布:2015-06-19 16:28
  • 更新:2018-08-22 15:09
  • 阅读:4375

华为通讯录获取不了

分类:HTML5+

一样的代码,在大部分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');  
                });
2015-06-19 16:28 负责人:无 分享
已邀请:
Float

Float - 专注

请问问题怎么解决的?麻烦说一下,谢谢

该问题目前已经被锁定, 无法添加新回复