0

PhoneGap と JQuery Mobile を使用して、モバイル Web アプリケーションを iOS アプリにパッケージ化しようとしています。アプリケーションは Datajs を使用して、別のサイトへの OData リクエストを作成します。Cordova.plist で External Hosts を '*' に設定しました。Web ブラウザーで同じファイルを使用すると、要求は正常に機能します。

問題は、iOS アプリにパッケージ化されるとすぐに、OData.read() 関数が存在しないかのように完全にスキップされることです。問題を引き起こしているコードは次のとおりです。

var myURI = baseURL + "GetIndustries";
    console.log("before request");
    OData.read({requestUri: myURI, username: username, password: password}, function (data){
                          console.log("successful request");
               for (var i=0; i<data.results.length; i++) {
            industries[i]=data.results[i];
        }
        }, function(err){
            console.log("error: "+err);
    });
    console.log("after request...");

アプリケーションを実行すると、ログ出力は次のようになります。

2012-12-21 11:05:48.104 opportunities[298:907] Multi-tasking -> Device: YES, App: YES
2012-12-21 11:06:04.791 opportunities[298:907] [LOG] before request
2012-12-21 11:06:04.806 opportunities[298:907] [LOG] after request...

私には、エラー処理も含めて、OData 関数を完全にスキップしていることがわかります。私は datajs-1.1.0 とバージョン 1.2.0 の JQueryMobile を使用しています。

どんな助けや指針も大歓迎です。ありがとう。

4

1 に答える 1

0

私には、OData関数を完全にスキップしていることを示しています

違う。への AJAX リクエストrequestUriは、datajs によって非同期に送信されます。参照する OData 関数はコールバック関数です。つまり、後で呼び出されることを意味します。つまり、サーバーが応答を作成し、datajs がその応答を受信したときです。

コールバック関数が呼び出されない理由について: を呼び出すときにパラメーターを確認してくださいOData.readスニペットはいくつかの例を提供します。OData.readの詳細なドキュメントも参照してください。

于 2013-01-15T16:22:17.247 に答える