1

連絡先の名前はわかりますが、番号はわかりません。私はどこが間違っていますか?

これがコードです。

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!');
}

2番目のforループのアラートは表示されません。

私はPGヌーブです。

更新された(機能していない)コードは次のとおりです。

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を追加し、変数を削除して、代わりにアラートを出しました。

4

1 に答える 1

1

PhoneGapにPhoneNumbersをロードするように指示しているのではなく、これを必須フィールド配列に追加する必要があります。

var fields = ["displayName", "name", "nickname", "phoneNumbers"];
于 2013-02-07T15:18:58.467 に答える