2

jQueryを使用してHTMLコンテンツをdivにロードする概念実証を開発しようとしています。jQuery、jQueryMobile、PhoneGapを使用しています。単一のjQueryMobileページを持つ単純なindex.htmlがあります。サーバーへの呼び出しの結果(HTML)をコンテンツdivに挿入したいと思います。これをAndroidエミュレーターでテストしています。これが私のコードです:

function onBodyLoad()
{    
    document.addEventListener("deviceready",onDeviceReady,false); 
}

function onDeviceReady()
{     
    var url = "http://www.myserver.com/content/qwerty";
    $("#applicationContainer").load(url);
}
<body onload = "onBodyLoad();">

<div data-role="page" id="page">
    <div data-role="header">
        <h1>My Content</h1>
    </div>
    <div id="applicationContainer" data-role="content"> 
    </div>
</div>

</body>

これは機能していません。私は何が間違っているのですか?android apkファイルをエミュレーターにロードしてアプリを開くことはできますが、HTMLをコンテンツdivにロードできません。私のコンセプトは、phonegapを使用してhtmlコンテンツをページにロードするAndroidおよびiphoneモバイルアプリを作成することです。私は何が欠けていますか?御時間ありがとうございます。

4

5 に答える 5

1

index.htmlも同じサーバー上にある必要があります。同一生成元ポリシーです。

考えてみてください。すべてのページをサイトにロードできる場合は、次のようにすることができます。

$("#container").load("http://facebook.com/messages")。すべてのウェブサイトがあなたのプライベートメッセージを読むことができます。これが、同じドメインのサイトにしかアクセスできない理由です。

YahooPipesなどのいくつかの回避策があります。

于 2012-04-13T21:08:48.573 に答える
1

外部サーバーからコンテンツを読み込めない理由を説明している可能性のあるこのチュートリアルに出くわしました。

http://samcroft.co.uk/2011/updated-loading-data-in-phonegap-using-jquery-1-5/

チュートリアルの終わりに向かって、作者は、PhoneGap 1.x+ がプロジェクトの plist ファイルに「ExternalHosts」を追加したと言います (その例では iOS を扱っています)。この変更により、アプリ内からアクセスするサーバーをホワイトリストに登録する必要があるため、必ずドメインを追加してください。では、Android PhoneGap 実装の外部サーバーをホワイトリストに登録するにはどうすればよいでしょうか? これで、私の単純な例でコンテンツを読み込めない理由が説明できると思いますか? ありがとう

于 2012-04-16T04:56:26.420 に答える
0

外部サーバーをホワイトリストに登録する方法を見つけました。

phonegap 1.3.0のホワイトリストの状態はどうなっていますか?

phonegap.xml(私のものはresフォルダーにあります-〜/ res / xml / phonegap.xml)を探し、以下を追加します。

これにより、すべてのドメインが許可されます。

お役に立てれば。

于 2012-06-27T12:28:43.683 に答える
0

ドメイン「www.myserver.com」をホワイトリスト ファイルに追加しましたか?

気にしないでください、それはiOS専用だと思います。

コードが呼び出されていることを確認するために、onDeviceReady にアラートを設定できますか?

于 2012-04-13T21:03:18.500 に答える
0
<script type="text/javascript">

$("#page").bind("pageshow",function(){
 //your jquery operation when pageshow event triggered.

 var url = "http://www.myserver.com/content/qwerty";
 $("#applicationContainer").load(url);

});

function onBodyLoad()
{    
    document.addEventListener("deviceready",onDeviceReady,false); 
}

function onDeviceReady()
{     
   //your phonegap operation.

}
</script>
<body onload = "onBodyLoad();">

<div data-role="page" id="page">
    <div data-role="header">
        <h1>My Content</h1>
    </div>
    <div id="applicationContainer" data-role="content"> 
    </div>
</div>

</body>
于 2012-04-14T03:42:17.360 に答える