我的代码是:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
function onSuccess(contacts) {
console.log(contacts.length);
for (var i = 0; i < contacts.length; i++) {
console.log("ID: " + i);
console.log("DisplayName: " + contacts[i].displayName);
console.log("phoneNumbers: " + contacts[i].phoneNumbers[0].value);
}
}
function onError(contactError) {
alert('onError!');
};
var options = new ContactFindOptions();
options.filter = "";
filter = ["displayName", "phoneNumbers"];
navigator.contacts.find(filter, onSuccess, onError, options);
}
结果是:
1
ID:0
DisplayName:xxxxx
phoneNumbers:xxxxxxxx
为什么呢?我的手机中有多个项目。
答案 0 :(得分:1)
W3C中多个默认值从true更改为false 联系人规范。提及options.multiple = true它会起作用。
var options = new ContactFindOptions();
options.filter = "";
options.multiple=true;
filter = ["displayName", "phoneNumbers"];
navigator.contacts.find(filter, onSuccess, onError, options);
答案 1 :(得分:1)
只需设置options.multiple=true
,如果这不起作用,只需在true
中添加第五个参数navigator.contacts.find(filter, onSuccess, onError, options);
navigator.contacts.find(filter, onSuccess, onError, options,true);
这里,true告诉用户是否期望多个联系人。请参阅this官方文档。