

monaca で、連絡先プラグインを利用しようと思い、サンプルコードをお手本に、

[code]

    <script>
    function contacts_success(contacts) {
        alert(contacts.length
            + ' contacts returned.'
            + (contacts[2] && contacts[2].name ?
                  (' Third contact is ' +   contacts[2].name.formatted) :
                  ''));
    }
    function contacts_failed(msgObject){
        alert("Failed to access contact list:" + JSON.stringify(msgObject));
    }
    function get_contacts() {
        var obj = new ContactFindOptions();
        obj.filter = "";
        obj.multiple = true;
    　  navigator.contacts.find(
            [ "displayName", "name" ], contacts_success,
            contacts_failed, obj);
    }
    </script>
    </head>
    <body>
        <a href="#" class="btn large" onclick="get_contacts();return false;">Get Phone's Contacts</a>
    </body>
    
[/code]

は正常に実行されました。これを、起動されたときに実行したいので、

[code]

    <script>
    function contacts_success(contacts) {
        alert(contacts.length
            + ' contacts returned.'
            + (contacts[2] && contacts[2].name ? (' Third contact is ' + contacts[2].name.formatted)
                    : ''));
    }
    function contacts_failed(msgObject){
        alert("Failed to access contact list:" + JSON.stringify(msgObject));
    }
    
    var obj = new ContactFindOptions();
    obj.filter = "";
    obj.multiple = true;
    navigator.contacts.find(
        [ "displayName", "name" ], contacts_success,
        contacts_failed, obj);
    </script>
    
[/code]

としたところ

[code]

    Uncaught ReferenceError: ContactFindOptions is not defined
    
[/code]

というエラーが出てしまいました。  
なぜなんでしょうか。。。


CC BY-SA 3.0
2015-03-03T14:23:39.623
7390
2015-03-03T14:50:30.153
2015-03-03T14:33:49.203
3313
8659
question
monaca
monaca の連絡先プラグイン利用でエラー


`ContactFindOptions`を定義しているファイル(Cordova)を読み込む前に処理が走るせいではないでしょうか。

[code]

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);
    
    // Cordova 準備完了
    //
    function onDeviceReady() {
        var obj = new ContactFindOptions();
        obj.filter = "";
        obj.multiple = true;
        navigator.contacts.find(
            [ "displayName", "name" ],
            contacts_success, contacts_failed, obj);
    }
    
[/code]

などとするのはどうでしょう。

cf. [連絡先 -
Monacaドキュメント](http://docs.monaca.mobi/2.9/ja/reference/phonegap_29/ja/contacts/contacts/#contactfindoptions-
ja)


CC BY-SA 3.0
2015-03-03T14:50:30.153
7391
2015-03-03T14:50:30.153
3313
7390
answer