0

PhoneGapを使用して、jQuery MobileサイトをAndroidで実行しようとしています(現在Galaxy S3でテスト中、Android 4.0.4)。

デバイスの [戻る] ボタンを使用してサイトのホームページに戻ろうとすると、「ネットワーク エラーが発生しました...」というアプリケーション エラーが表示されます。私が戻ってきたページは、最初に「data-ajax = false」を使用してリンクされたページです。

次のようにエラーを再現できます。

  1. index.html で始まるアプリケーションを起動します。
  2. help.html など、data-ajax=false を使用しないリンクをクリックします。
  3. デバイスの戻るボタンを使用して index.html に戻ります
  4. data-ajax=false, name irrelevant を使用ているリンクをクリックします
  5. デバイスの戻るボタンを使用して index.html に戻るようにしてください。

スローされる正確なエラーは次のとおりです。

ネットワーク エラーが発生しました。(ファイル:///android_asset/www/index.html#/android_asset/www/help.html

不思議なことに、「data-ajax=false」でリンクされたページに移動する前に別のページにアクセスしないと、エラーはスローされず、ページは期待どおりに機能します。

ソリューションに関するリソースがオンラインで見つからないようです。

index.html で $.support.cors と $.mobile.allowCrossDomainPages = true を設定しようとしましたが、何もしませんでした。2 つのリンクの唯一の違いは、一方には data-ajax=false があり、もう一方にはありません。2 つの同じページでエラーを再現したので、ページの内容は問題ではないと確信しています。

ページをリンクする方法は次のとおりです。

<a href="help.html">Help</a>

<a href="test.html" data-ajax="false">Test</a>

アドバイス、または何が起こっているかの説明をいただければ幸いです。

4

1 に答える 1

0

phonegap アプリで data-ajax="false" を使用することはおそらく避けるべきです。ページ全体のリロードが発生するため、状態が失われ、アプリの起動時だけでなく、各ページで phonegap スクリプトが再初期化されます。

100% 確信は持てませんが、その時点で URL が機能しない理由に関連がある可能性があります。おそらく android_asset は実際にはデバイスのルート フォルダーではなく、/android_asset/www/ のロードをトリガーしています。部分的に初期化されたページの help.html は、期待どおりに機能しない場合があります。

最初に ajax ページにアクセスしない場合、URL にハッシュはなく、アプリを起動したときと同じように index.html が通常どおり読み込まれます。

于 2012-11-16T02:33:23.823 に答える