等待中,我也是遇到华为的问题,不知道其他手机是否也有这个问题。如下代码,仅仅获取10条记录,花了20多秒;获取contacts.length,也是几十秒。
document.addEventListener("plusready", function() {}, false);
function find() {
plus.contacts.getAddressBook(
plus.contacts.ADDRESSBOOK_PHONE,
function(addressbook) {
contactStr = '';
addressbook.find(
["displayName", "phoneNumbers"],
function(contacts) {
//length = contacts.length;
for (var i=0;i<10;i++) {
try {
contactStr += contacts[i].displayName + "|"+contacts[i].phoneNumbers[0].value+";";
} catch (e) {
continue;
}
};
document.getElementById('acc').innerHTML = contactStr;
},
function() {
alert("error");
}, {
multiple: true
});
},
function(e) {
alert("Get address book failed: " + e.message);
});
}
8 个回复
最佳回复
Android_磊子
原来查询操作再UI主线程完成,现使用新的线程进行了修正;建议开发者在使用的时候添加等待框完善体验效果。
空旋
希望得到帮助,同问
DCloud_App_Array
请@DCloud_Android_磊子 确认此问题
Android_磊子
此问题已经在新版本修改,静等更新版本。
yehunhun
建议添加异步执行功能,目前5+调用的方法,很多都会阻塞进程!
2015-04-20 11:38
Android_磊子
正在考虑这个事情。
2015-04-20 13:01
空旋
等待中。。。
dapanji
等待中,我也是遇到华为的问题,不知道其他手机是否也有这个问题。如下代码,仅仅获取10条记录,花了20多秒;获取contacts.length,也是几十秒。
document.addEventListener("plusready", function() {}, false);
function find() {
plus.contacts.getAddressBook(
plus.contacts.ADDRESSBOOK_PHONE,
function(addressbook) {
contactStr = '';
addressbook.find(
["displayName", "phoneNumbers"],
function(contacts) {
//length = contacts.length;
for (var i=0;i<10;i++) {
try {
contactStr += contacts[i].displayName + "|"+contacts[i].phoneNumbers[0].value+";";
} catch (e) {
continue;
}
};
document.getElementById('acc').innerHTML = contactStr;
},
function() {
alert("error");
}, {
multiple: true
});
},
function(e) {
alert("Get address book failed: " + e.message);
});
}
dapanji
另外,建议开发者参考下baidu做的blendui,获取contacts的时候,在华为的机器上,速度正常。
dcl
貌似很久没更新了