1

Phonegap (バージョン 1.9.0) と jQuery Mobile (1.1.0) を使用して Android (2.2) アプリを作成しようとしています。具体的には、アプリは既存の WCF REST サービスに GET 要求を送信し、JSON データ (フォルダーのリスト) を取得して、選択ドロップダウン メニューのオプションとして各項目を表示することになっています。

今のところ、デスクトップ ブラウザを使用している場合、これらはすべて正常に機能します。WCF REST サービスは正しい応答を送信し、ブラウザーはページを正しくレンダリングし、必要に応じて選択メニューにオプションを配置します。ただし、Phonegap を使用して Android アプリで次のコードを使用すると:

$.getJSON('http://xxx.xxx.xxx/MobileService.svc/GetFolders?callback=?', null, function (folders) {                  
    $.each( folders, function( i, folder ) {
        $("#folders").append("<option value='"+folder.Id+"'>"+folder.Name+"</option>");
    });
    $("#folders").selectmenu("refresh");
});

...Android アプリを起動するとエラー メッセージが表示されます (物理デバイスでのデバッグ)。

Connection to the server was unsuccessful. ("file:///android_asset/www/index.html")

上記の $.getJSON コードをコメント アウトすると、アプリは正常に読み込まれますが、選択メニューには何も入力されません。

また、Phonegap は "file://" プロトコルを使用しているため、"http://" プロトコルが "same-origin ポリシー" の影響を受けていないことにも気付きました...私はブラウザで作業していたので、コールバックがあります。これが失敗の理由だとは思いませんが、わかりません。どんな助けでも大歓迎です!

私が試したこと:

  • cordova.xml でアクセス元を「.*」に変更

  • 「super.setIntegerProperty("loadUrlTimeoutValue", 60000);」の追加 活動へ

4

2 に答える 2

1

私の特定のケースでは、問題は、REST サービスがホストされているネットワークにアクセスできないゲスト Wi-Fi ネットワーク上にある携帯電話に要約されたため、接続がブロックされていたことが判明しました。

誰かを助けることができることを願っています

于 2012-07-13T17:18:47.010 に答える
1

入門ガイドに記載されているの"*"ではなく、cordova.xml を設定してみることができます。".*"

またはさらに良い:

 http://xxx.xxx.xxx
于 2012-07-12T20:01:47.963 に答える