2012-04-13 6 views
2

jQueryを使用してHTMLコンテンツをdivに読み込む概念の証明を開発しようとしています。私はjQuery、jQueryMobile、PhoneGapを使用しています。私は単一のjQueryMobileページを持つ単純なindex.htmlを持っています。私は、私のサーバーへの呼び出しの結果(HTML)をコンテンツdivに挿入したいと思います。私はAndroidのエミュレータでこれをテストしています。ここに私のコード:URLをアプリケーションにjQueryを使用して読み込んでいます。

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> 

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

答えて

0

は、私が見つかりました。どのようにホワイトリストへの外部サーバ:phonegap.xmlため

What is the state of whitelisting in phonegap 1.3.0?

見て(私はRESフォルダ内にある - 〜/ RES/XML/phonegap.xml)と追加します。

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

これが役に立ちます。

0

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

これはiOS専用です。

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

+0

私はURL値を表示するためのアラートを追加しましたが、私はアラートを受信しました –

1

あなたのindex.htmlも同じサーバー上になければなりません。それは同じ原点政策です。

はそれについて考える:

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

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

+2

PhoneGapアプリケーションには当てはまりません。 – CambridgeMike

+0

同じ発信元ポリシーが携帯電話用アプリには適用されないと私は理解しています –

+0

phonegapを使用している場合、同じ発信元ポリシーは適用されません。 HTTP以外のHTMLファイルを読み込むために "file://"プロトコルを使用するためです。 – root

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> 
+0

コードスニペットありがとう。私はあなたのバージョンをブラウザで動作させることができますが、この簡単なコードをDreamweaverを使ってAndroid apkファイルに作り、Androidエミュレータで読み込むと動作しません。私は "pageshow"メソッドで警告を出し、警告はエミュレータで発生しますが、HTMLを取得する私のサーバへの呼び出しは起動しません。フィドラーには何の活動もありません。私はアンドロイドエミュレータで行う必要がありますか? –

+0

おそらく、あなたは、。 – root

1

私は外部サーバからコンテンツをロードすることはできません理由を説明するかもしれない。このチュートリアルでつまずい:チュートリアルの終わりに向かって

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

、著者はPhoneGapの1述べています。 x +はプロジェクトのplistファイルに "ExternalHosts"を追加したものです(例ではiOSを扱っています)。この変更により、あなたはあなたのアプリケーション内からアクセスするサーバーをホワイトリストに登録する必要がありますので、ドメインを追加してください。では、Android PhoneGapの実装用に外部サーバをホワイトリストに登録するにはどうすればよいですか?これは私が単純な例でコンテンツを読み込めない理由を説明していると思いますか?おかげ

関連する問題