1

我正在使用“Cordova”为 IOS 和 Android 创建应用程序。我需要访问设备的联系人。我为此使用插件“org.apache.cordova.contacts”。

这是我用来执行此操作的代码的一部分,我得到了响应...

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
...
...

问题:“电子邮件”字段和“电话号码”字段始终为空(在 android 和 iO 上),但它们存在于“通讯录”中

有人知道为什么吗?

4

2 回答 2

1

我偶然发现了这个话题,因为在我的情况下,contact.displayName 显示为 null(我在 contactFields 中有 displayName)。

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

于 2016-07-18T08:09:35.030 回答
0

phonegap文档说:

contactFields:用作搜索限定符的联系人字段。生成的联系人对象仅包含这些字段的值。 (DOMString[]) [必填]

您不会将emailsandphoneNumbers字段添加到fields数组中。尝试:

var fields = ["displayName", "name", "nickname", "emails", "phoneNumbers"];
于 2013-11-15T01:04:31.433 回答