我正在使用phonegap(Cordova 2.0.0)开发一个Android应用程序.我需要检索设备联系人.我已尝试使用此doc提供的代码
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!');
}
Run Code Online (Sandbox Code Playgroud)
我在Logcat中收到消息,如下所示:
成功回调错误:Contacts3 = TypeError:无法在file:///android_asset/www/JS/cordova-2.0.0.js读取null的属性'length':258
请帮我解决这个问题.
您的某个联系人可能没有电话号码,这就是您获得null价值而不是电话号码的原因.
因此,在你的for循环中,其中一个会contacts[i].phoneNumbers.length产生错误.
我建议您在显示/提醒之前先检查是否phoneNumbers是null,通过使用:
if(contacts[i].phoneNumbers != null)
Run Code Online (Sandbox Code Playgroud)
最后,您可以尝试这样的事情:
$("#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!');
}
Run Code Online (Sandbox Code Playgroud)
希望这有帮助,请告诉我这是否适合您.
| 归档时间: |
|
| 查看次数: |
4224 次 |
| 最近记录: |