2

Titanium を使用して Android 用のアプリケーションを作成しています。アプリは webview を使用して、外部の HTML5 Web ページを読み込みます。Web ページは、マニフェストを使用してページと一部のアセットをキャッシュします。これは、Android (Chrome) のデスクトップ ブラウザーおよびサード パーティ アプリ ブラウザーで正常に動作します。

Titanium ビルド アプリの Web ビューでページを表示すると、マニフェストが使用されていないように見えます。ページはサーバーからすべてをロードするだけです。携帯電話の組み込みブラウザー (HTC one X) を使用すると、同じ問題が発生します。

私が達成しようとしているのは、キャッシュされたページを表示するためにインターネットが必要ないように、ページがオフラインで利用できるようにすることです。この問題を解決する方法はありますか? それとも、別の方法で問題を解決する必要がありますか?

マニフェスト ファイル:

CACHE MANIFEST
# version 1 

leerlingen.html
jquery.js
style.css
handler.js

NETWORK:
*
4

2 に答える 2

0

まず、Titanium は WebView よりもはるかに多くの機能を提供します。Web ページのみを表示する場合は、PhoneGap / Cordova の方がニーズに適している可能性があります。


お気づきのように、すべてのブラウザが期待どおりに HTML5 キャッシュ機能をサポートしているわけではありません。WebKitは通常それをサポートしていますが、使用されているWebKitのバージョンに依存するため、一般的にAndroidで機能しないのか、特定のバージョンでのみ機能するのかはわかりません. そして、これは異なる可能性があります。

編集: (ネイティブ Android では) この機能は、ここに書かれているように有効にできるようです: HTML5 のアプリケーション キャッシュは、Android PhoneGap アプリケーションでは機能しません。これは現在、Titanium では不可能です (私が知らない非公式の微調整があるかもしれませんが、http: //docs.appcelerator.com からは不可能です)。

個人的には別の解決策を好むでしょう。自分でデータをキャッシュし、ネットワーク接続がない場合に表示します。ただし、これは何を達成しようとするかによって異なります。頻繁に変更されないコンテンツをほとんど持たないことは、理にかなっています。動的に変化するデータ (たとえば、Twitter ストリームなど) を持つことは困難です。また、ユーザーとアプリにアクセスする場所によっても異なります。

すべてのキャッシュ機能を使用したいのに、なぜアプリを作成する必要があるのでしょうか。シンプルなモバイル Web ページを作成する場合も、同じことができます。アプリを作成するとき、私は HTML 5 のキャッシュ機能を使用しません。アプリ内のすべての静的リソースを保持し、ネットワークからデータをロードするだけです。これは、Titanium と PhoneGap / Cordova の両方で実現できます。Titanium はネイティブ UI と一部のネイティブ機能に適していますが、PhoneGap / Cordova は HTML5 ベースのレイアウトに適しています。

于 2013-04-05T12:39:07.803 に答える
0

他の誰かが私が直面していたのと同じ問題で実行されている場合に備えて、ここに私がやったことがあります. HTML5 のアプリケーション キャッシュは、Android のビルトイン ブラウザとその webviews では機能しないようです。Titanium では、アプリケーション キャッシュを有効にするために WebView を制御する方法がないようです。

私にとっての回避策は、Titanium とその httpClient 関数 (Titanium.Network.HTTPClient) を使用してファイル (HTML、CSS、javascript) を要求し、それをローカル アプリ ファイルシステム (Titanium.Filesystem) に保存することでした。

于 2013-04-16T12:26:37.463 に答える