9

電話番号のある連絡先だけを表示する方法はありますか?

今、私はすべての連絡先を取得し、それぞれをループして電話番号を見つけていますが、contactFindOptions電話番号を持つ連絡先のみを取得するようにパラメーターをオブジェクトに渡す方法があるかどうか疑問に思っていましたか?

これは私のコードが現在どのように見えるかです:

var options = new ContactFindOptions();
options.filter=""; //Can i pass something here to pick only contacts with phone number
options.multiple=true; 
var fields = ["displayName", "phoneNumbers"];
navigator.contacts.find(fields, onSuccess, onError, options);


function onSuccess(contacts) {
    for (var i=0; i<contacts.length; i++) {
        console.log("Display Name = " + contacts[i].displayName);
        if(null != contacts[i].phoneNumbers)
            {
                for(var j=0;j<contacts[i].phoneNumbers.length;j++)
                {
                      console.log("Name = " + contacts[i].displayName);
                      console.log("Phone = " + contacts[i].phoneNumber[j].value);

                }
            }
    }
}
4

3 に答える 3

1

このプラグインは、最良のアプローチのように見えます: https://github.com/dbaq/cordova-plugin-contacts-phone-numbers

電話番号のある連絡先のみを検索します。

于 2015-06-16T21:33:33.513 に答える
0

Cordova API では、必要なことを達成するためのフィルタリングが許可されていないと思います。

こちらのドキュメントから: http://docs.phonegap.com/en/2.5.0/cordova_contacts_contacts.md.html#contacts.find

それは言います:

contactFindOptions.filter 文字列は、連絡先データベースを照会するときに検索フィルターとして使用できます。指定した場合、contactFields パラメーターで指定された各フィールドに、大文字と小文字を区別しない部分的な値の一致が適用されます。指定されたフィールドのいずれかとの比較で一致が見つかった場合、連絡先が返されます。

これを使用して、電話番号フィールドがnullでないことを判断できるとは思いません。

于 2013-04-08T23:19:10.410 に答える