0

contact.find関数を使用して、連絡先リストからメールを取得しています。
すべての連絡先リスト名を取得することは問題ありませんが、連絡先リストの電子メールを取得するのに行き詰まっています。
連絡先リストのメールデータを解析すると、JavaScriptエラーが発生するようです。
以下は私のコードです。

var contactFxn = {

getContact : function(){
    var options = new ContactFindOptions();
    var fields = ["name", "email"];
    options.filter= "";
    options.multiple=true;
    navigator.contacts.find(fields, this.onSuccess, this.onError, options);
    //console.log(options);
},
onSuccess : function(contacts){

    for(var i = 0; i < contacts.length; i++){
            console.log(i);
            console.log("Display email = " + contacts[i].emails[0].value);
        }  
    }
},
onError : function(e){
    console.log(e);
}

}

contactFxn.getContact();

これが私のログコンソールです。

2012-11-09 16:48:22.564 test [9529:907] [LOG] 0
2012-11-09 16:48:22.566 test [9529:907][LOG]表示名=ssxxc
2012-11-09 16: 48:22.568テスト[9529:907][ログ]1

連絡先に電子メールの値がない場合、webviewがjavascriptエラーをスローすると推測しています。
xcodeで発生したjavascriptエラーの種類を確認できないのは残念です。

私はすでに'if(contacts [i] .emails [0] == null)'を試しましたが、うまくいきませんでした。webviewはとにかくエラーをスローします
誰かがこの問題を修正する他の方法を提案できますか?前もって感謝します。

4

1 に答える 1

2
onSuccess : function(contacts){

for(var i = 0; i < contacts.length; i++){
        console.log(i);
        if(contacts[i].emails){
            console.log("Display email = " + contacts[i].emails[0].value);
        }
    }  
}

ただ愚かな間違い。

連絡先のいくつかの要素が配列しているときにcontacts[i].emails[0].valueを取得しようとしました

メールの価値はありません。上記のコードは正常に機能するようになりました

于 2012-11-14T06:51:07.527 に答える