7

Phonegap アセット フォルダーに保存する代わりに、サーバーから外部リソース (js、css、html) を呼び出す Phonegap と Android で構築された単純な Web アプリがあります。私のサーバーは国際化を担当するhtmlページを配信できるため、外部リソースを使用することを好みます。

この Web アプリは、WIFI がオンのときは Android デバイスで正常に動作しますが、WIFI を停止すると失敗します。サーバーから配信された index.html ファイルには、正しい MIME タイプ ('text/cache-manifest') を持つ有効なマニフェスト ファイルが含まれており、アプリが動作するために必要なすべてのファイルがリストされています。

私の Android アクティビティ クラスでは、キャッシュが有効になっているはずです。

    this.appView.getSettings().setDomStorageEnabled(true);
    this.appView.getSettings().setAppCacheMaxSize(1024 * 1024 * 15);  

    String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
    this.appView.getSettings().setAppCachePath(appCachePath);
    this.appView.getSettings().setAllowFileAccess(true);
    this.appView.getSettings().setAppCacheEnabled(true);

私のアプリは /aaa/bbb/ のような URL で ajax 呼び出しを使用してサーバーから Web ページを呼び出すことに言及する価値があるかもしれませんが、それが問題であるかどうかはわかりません (index.html のように物理ページを直接呼び出していません)。 ...しかし、この Web アプリは、オフライン時にデスクトップ ブラウザー (Google Chrome) で正常に動作します...

Phonegap アプリでこの HTML5 キャッシュ機能を有効にするには、さらに何ができるでしょうか?

どうもありがとう

4

3 に答える 3

6

しばらく遊んだ後、私はそれを機能させます。このタイプのキャッシングの問題で立ち往生したときに確認する必要があるいくつかのポイントを次に示します。

  • GET メソッドで渡される URL パラメーターに注意してください... アプリのページ間を移動するときにパラメーターを渡していましたが、それらのパラメーターによって URL がマニフェスト ファイル内の URL と異なり、キャッシュが失敗しました。
  • 携帯電話でオフライン モードをテストするとき、WIFI をシャットダウンするだけで、アプリのキャッシュ バージョンをトリガーするのに十分だと思っていましたが、そうではありませんでした...ローカル ネットワーク IP (192.168.2.11 など) で公開されたアプリをテストしていたので)、私のアプリはまだオンになっている 3G ネットワークを介してその IP に到達しようとしていたようです...そのため、オフラインでテストするときは機内モードを使用してください。
  • 他のスレッドで読んだので、これが必要かどうかはわかりませんが、マニフェスト ファイルの名前を cache.manifest に変更しました。

よろしく

于 2013-04-16T14:38:40.520 に答える
1

どうやら「HTML5キャッシングを有効にするためにAndroid Shell Native Appを修正する」必要があるようです。

まだチェックしていない場合は、以下をチェックしてください。

http://tmkmobile.wordpress.com/2012/03/04/html5-offline-solution/

于 2013-04-16T01:12:29.987 に答える