2013-11-14 41 views
1

我正在使用“科尔多瓦”创建IOS和Android应用程序。 而我需要访问设备的联系人。我使用该插件“org.apache.cordova.contacts”。科尔多瓦联系人插件 - 电子邮件null

下面是我用来做代码的一部分,我得到回应......

function ContactsCtrl($scope){ 
    var options = new ContactFindOptions(); 
    options.multiple = true; 
    options.filter = "Benoit"; 
    var fields = ["displayName", "name", "nickname "]; 
    navigator.contacts.find(fields, onSuccess, onError, options); 
} 

function onSuccess(contacts) { 
    var ret = ''; 
    for (var i = 0; i < contacts.length; i++) { 
     for(x in contacts[i]){ 
      ret += x+' :'+contacts[i][x]+"\n"; 
     } 
    } 
    $('#resultContact').html(html); 
} 

和响应:

rawId :null 
displayName :Nasher 
name :[object Object] 
nickname :null 
phoneNumbers :null 
emails :null 
... 
... 

问题: “电子邮件”字段和“phoneNumbers”字段总是空的(在android和iOs上),但它们存在于“通讯簿”中

任何人都有一个idee为什么?

回答

0

phonegap docs说:

contactFields:联系字段作为搜索限定符使用。 生成的Contact对象仅具有这些字段的值。 (DOMString [])[必填]

您不要在emailsphoneNumbers字段添加到您的fields阵列。尝试:

var fields = ["displayName", "name", "nickname", "emails", "phoneNumbers"]; 
1

因为在我的情况下contact.displayName被显示为空(我在的displayName contactFields)我对这个话题绊倒。

将“名称”添加到contactFields数组后,displayName被填充。