2012-05-07 27 views
1

私はウィキペディアの記事にリンクしているボタンをユーザーがクリックできるようにする機能を含むウェブアプリ(sencha/phonegap)を持っています。デバイスにインターネットアクセスがある場合、これは明らかにうまく動作しますが、アプリがオフラインになってもアプリが動作するようにリクエストがたくさん届きます。これを実現するには、リンクされた記事やウェブページをオフラインでダウンロードするためのオプションをユーザに与えたいと思います。デバイスがインターネットにアクセスできない場合、アプリは保存されたバージョンを表示します(期限切れの可能性がありますが期限切れである可能性がありますが、何もないより優れています)。どのような方法でこの作業を達成できますか?ウェブアプリケーションにオフラインでアクセスするためのウェブページを保存する

私の最初の考えは、何とかHTMLマニフェストを使って携帯電話のブラウザでページをキャッシュしていましたが、Androidブラウザでは可能性がありますが、iOSには5MBのブラウザキャッシュ制限があります。

私の次の考えは、必要なhtmlファイル&を保存してアプリ内にバンドルすることでした。しかし、これはむしろ面倒なアプローチに見えます。アプリは必要以上に大きくなり、ウェブページはアプリがインストールされた日まで古くなっています。

javascriptを使用すると、Webページをダウンロードできます(後でアクセスできるようにSDカードなどに保存できますか)。

さらに洗練されたアプローチがありますか?

誰かが正しい方向に私を指すことができれば、それは非常に感謝します。

答えて

0

純粋なJavascriptでは、Ajaxページのダウンロードリクエストを行うことができます。次に、FileWriterを使用して、responseTextをファイルシステム上のファイルに書き込むことができます。しかし、それは画像になるとあなたを助けません。バイナリイメージファイルを取得するには、FileTransfer.download()コマンドを使用する必要があります。

私があなただったら私がしたい:

  1. は、HTMLをダウンロードするにはAJAXを使用してください。
  2. イメージを探すHTMLを解析します。
  3. FileTransfer.downloadを使用してイメージを取得します。
+0

ありがとう、サイモン、良いアプローチのように見えます。私はPhonegapがファイルをダウンロードする能力を持っていたことに気付かなかった。最近の追加のように見えます。 2つの簡単な質問。 1)Ajaxリクエスト中にCSSマークアップが失われているか、別々にダウンロードする必要がありますか? 2)htmlのFileTranfer.download()を使用するのではなく、AJAXを使用して最初にhtmlをダウンロードする利点は何ですか? – Matt

+0

1)CSSがドキュメントのリンクである場合は、別途ダウンロードする必要があります。 2)AJAXを介してダウンロードすることの利点は、あなたが既にそれをメモリに保存しておき、それを解析して、画像、CSSなどのダウンロードが必要な他のリソースを確認できることです。 –

+0

良い点 - 賞 – Matt

関連する問題