2013-04-08 18 views
7

Phonegapアセットフォルダに保存するのではなく、サーバーから外部リソース(js、css、html)を呼び出すPhonegapとAndroidで構築された単純なWebアプリケーションがあります。私は外部のリソースを使用する方が好きです。なぜなら私のサーバは、国際化を担当するhtmlページを提供できるからです。HTML5 Android Phonegapキャッシュマニフェストでオフラインで動作しないWebアプリケーション

WIFIがオンのときにこのWebアプリケーションは正常に動作しますが、WIFIを停止すると失敗します。私のサーバで提供されたindex.htmlファイルには、有効なマニフェストファイルと正しいMIMEタイプ( 'text/cache-manifest')が含まれています。

私のAndroidのActivityクラスが有効をキャッシュしていることになっている:

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); 

それは価値がある「/のようなURLで私のアプリの使用AJAX呼び出しがAAA/BBB /サーバからWebページを呼び出すために、私はドンというmentionningありそれは問題(私はindex.htmlのような物理的なページを直接呼び出さない)...しかし、このWebアプリケーションは、オフラインのときにデスクトップブラウザ(Google Chrome)でうまく動作します...

私のPhonegapアプリでこのHTML5キャッシュ機能を有効にするにはどうすればよいですか?

どうもありがとう

答えて

6

を、私はそれが仕事を得るしばらく遊ん後。私のアプリのページとそれらのパラメータ間のナビゲートを作っていたとき、私はパラメータを渡した... GETメソッドで渡されたURLパラメータについては注意してください

  • :ここでは、キャッシング、この種の問題でstuckedするときに確認する必要がありますいくつかのポイントでありますマニフェストファイルのキャッシュとは違う私のURLはキャッシュを失敗させます。
  • 私の電話でオフラインモードをテストするとき、私はWIFIをシャットダウンするだけで、これはアプリのキャッシュバージョンをトリガーするのに十分だと思っていましたが、そうではありませんでした...私のアプリをローカルネットワークIP 192.168.2.11)、それは私のアプリがまだONだった3Gネットワ​​ークを介してそのIPに到達しようとしていたようだ...だから、オフラインでテストするときは飛行機モードを使う。
  • 私はいくつかのスレッドでこのスレッドを読むのに必要なものかどうかはわかりませんが、マニフェストファイルの名前をcache.manifestに変更しました。

よろしく

1

はどうやらあなたは、「HTML5のキャッシュを有効にするには、Androidのシェルのネイティブアプリケーションを修正する」必要があります。あなたがまだの場合は

は、チェックアウトしてください:

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

+0

おかげでこれは既に行われている...あなたは私の質問に修正を見ることができます –

1

私は、同様のシステムを開発しています。私がしたのは、PhonegapのWebページを作成し、WAMPサーバーのwwwフォルダに保存したことです。次に、onCreateメソッドで基本的にsuper.LoadURL( "insert_ip_address_here/insert_name_of_folder_where_webpage_is_located")を実行すると、phonegapアプリケーションが完全にロードされます(必要なのは、Androidアプリケーション自体のコード行だけです)。しかし、config.xml、マニフェスト、およびphonegapに必要なすべての設定が適切に行われていることを確認する必要があります(詳細はhttp://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CEAQFjAA&url=http%3A%2F%2Fwww.adobe.com%2Fdevnet%2Fhtml5%2Farticles%2Fgetting-started-with-phonegap-in-eclipse-for-android.html&ei=XfBuUcmKNu684AP3vYDQBw&usg=AFQjCNG16oUTDylMqz20YiiMZTlDxrfbPg&bvm=bv.45368065,d.dmgを参照してください)。

これがあなたが追求する道であれば教えてください。私はマルチ・キャスティングなどを使って、ローカル・システムのIPアドレスをダイナミック・ライン(super.loadurl(...)の行内)にするなど、特別なサポートを提供することができます。

+0

はい、これは私がsuper.LoadURL(私のHTTP URL)と私のリモートindex.htmlを呼んで、私がやっている基本的でonCreateメソッド。あなたが私の質問にチェックインすると、同じ方法でキャッシングを有効にするためのさまざまな設定も定義されています... –

+0

興味深いことに、キャッシングによってアプリがより速く実行されますか? (私自身のコードで実装することを考えています)。 – aagarwal

関連する問題