gpt4 book ai didi

android - 如何使用 phonegap 2.0.0 获取设备联系人?

转载 作者:太空狗 更新时间:2023-10-29 16:21:43 26 4
gpt4 key购买 nike

我正在使用 phonegap(Cordova 2.0.0) 开发一个 android 应用程序。我需要检索设备联系人。我已经尝试使用给定此文档的代码

http://docs.phonegap.com/en/2.0.0/cordova_contacts_contacts.md.html#Contacts

我的代码如下

$("#shareoptions3").live('click',function(){        

var options = new ContactFindOptions();

options.multiple = true;
var fields = ["displayName","phoneNumbers"];//["displayName", "name","phoneNumbers"];
navigator.contacts.find(fields, onContactSuccess, onContactError, options);
});

function onContactSuccess(contacts) {//alert(contacts.length);

for (var i=0; i<contacts.length; i++) {
// display phone numbers
for (var j=0; j<contacts[i].phoneNumbers.length; j++) {
alert("Type: " + contacts[i].phoneNumbers[j].type + "\n" +
"Value: " + contacts[i].phoneNumbers[j].value + "\n" +
"Preferred: " + contacts[i].phoneNumbers[j].pref);
}
}
};

// onError: Failed to get the contacts
//
function onContactError(contactError) {
console.log('Error in getting contacts!');
}

我在 Logcat 中收到这样的消息:

Error in success callback: Contacts3 = TypeError: Cannot read property 'length' of null at file:///android_asset/www/JS/cordova-2.0.0.js:258

请帮我解决这个问题。

最佳答案

您的某个联系人可能没有电话号码,这就是为什么您会得到一个 null 值而不是电话号码的原因。

因此,在您的 for 循环中,其中一个 contacts[i].phoneNumbers.length 将产生一个错误。

我建议您先检查 phoneNumbers 是否为 null,然后再显示/提醒它,使用:

if(contacts[i].phoneNumbers != null)


最后,你可以尝试这样的事情:

$("#shareoptions3").live('click',function(){        

var options = new ContactFindOptions();

options.multiple = true;
var fields = ["displayName","phoneNumbers"];//["displayName", "name","phoneNumbers"];
navigator.contacts.find(fields, onContactSuccess, onContactError, options);
});

function onContactSuccess(contacts) {//alert(contacts.length);

for (var i=0; i<contacts.length; i++) {

// display phone numbers

if(contacts[i].phoneNumbers != null) // Checking if not null
for (var j=0; j<contacts[i].phoneNumbers.length; j++) {
alert("Type: " + contacts[i].phoneNumbers[j].type + "\n" +
"Value: " + contacts[i].phoneNumbers[j].value + "\n" +
"Preferred: " + contacts[i].phoneNumbers[j].pref);
}
}
};

// onError: Failed to get the contacts
//
function onContactError(contactError) {
console.log('Error in getting contacts!');
}

希望这对您有所帮助,如果这对您有用,请告诉我。

关于android - 如何使用 phonegap 2.0.0 获取设备联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12833311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com