Phonegap:获取联系人姓名,但不是号码

时间:2013-02-07 15:07:17

标签: javascript cordova addressbook

我得到联系人姓名,但不是号码。 我哪里错了?

这是代码。

function loadPhoneContacts() {
    alert("Entering contacts");
    var options = new ContactFindOptions();
    options.filter="";
    options.multiple = true;
    var fields = ["displayName", "name", "nickname"];
    navigator.contacts.find(fields, onSuccessOfLoadContacts, onErrorOfLoadContacts, options);
}

function onSuccessOfLoadContacts(contacts) {

    alert("Got '" + contacts.length + "' contacts.");

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

        var contactname =  contacts[i].name.formatted;
        alert(ContactName + " has " + contacts[i].phoneNumbers.length + " numbers");
        alert(contacts[i].phoneNumbers[1].value);

            for (var j=0; j<contacts[i].phoneNumbers.length; j++) {
                contactnumber = contacts[i].phoneNumbers[j].value;
                alert("Got number:" + contactnumber);
            }



    }
}

function onErrorOfLoadContacts(contactError) {
    alert('onError!');
}

第二个for循环中的警报不会显示。

我是PG Noob。

这是更新的(不可用的)代码:

function loadPhoneContacts() {
    var options = new ContactFindOptions();
    options.filter="";
    options.multiple = true;
    var fields = ["displayName", "name", "nickname", "phoneNumbers"];
    navigator.contacts.find(fields, onSuccessOfLoadContacts, onErrorOfLoadContacts, options);
}

// onSuccess: Get a snapshot of the current contacts
//
function onSuccessOfLoadContacts(contacts) {


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

        alert(contacts[i].name.formatted);

            for (var j=0; j<contacts[i].phoneNumbers.length; j++) {
                alert(contacts[i].phoneNumbers[j].value);
            }

    }
}

// onError: Failed to get the contacts
//
function onErrorOfLoadContacts(contactError) {
    alert('onError!');
}

在var字段中添加了phoneNumbers,删除了变量并改为警告它们。

1 个答案:

答案 0 :(得分:1)

您没有告诉PhoneGap加载PhoneNumbers,您需要将其添加到必填字段数组中:

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