2012-01-18 15 views
9

ページが読み込まれた後にAndroidにWebviewをメディアに保存させるにはどうすればよいでしょうか?よりオフラインブラウジング用のWebViewの保存

いくつかの詳細:

  • 各ページには、イメージ、スクリプトやスタイリングが豊富になります。

  • 各ページは約0.5〜1メガバイトになります。

  • OnFinishedLoading Overrideが呼び出されると、それらは保存されます。

  • SDカードに保存してからローカルリポジトリを使用してバックアップしておくことをお勧めします。

ウェブビュー用にSQLデータベースを使用するか、各ビューを取得してファイルに書き出す必要があるかどうか不明です。

もし私が後者をすれば、どのファイルが最も簡単なので、各ファイルをリンクさせるために完全なWebクローラーを書く必要はありませんか?

答えて

7

Androidでキャッシュを使用するには、HTMLと一緒にHTML5マニフェストファイルを用意する必要があります。

<!DOCTYPE html> 
<html lang="en" manifest="manifest.file"> 
<head> ... 

キャッシュメカニズムは、マニフェストファイルにリストするエントリをSQLiteデータベースにキャッシュします。データベースはアプリごとであり、ウェブビューごとではありません。 (私はこれに多くの問題があった)。

この記事では、これを達成するために必要なすべての手順について説明します。 http://web.archive.org/web/20140314001433/http://alex.tapmania.org/2010/11/html5-cache-android-webview.html

あなたがこのページを使用してキャッシュするためのhello-世界の例を行うことができます。 http://html5demos.com/offlineapp

あなたは限り、あなたはアプリケーションマニフェストにWRITE_EXTERNAL_STORAGE権限を追加すると、SDカードにキャッシュを保存することができます。

幸運を祈る!

+1

ありがとう - これは理にかなっています。これで10 MBの制限はありませんか? 私はソースでこれを見た:webView.getSettings()。setAppCacheMaxSize(1024 * 1024 * 8); しかし、それはまだそれがどれくらい大きなものになるのかという疑問を引き起こします。たぶん1ページあたりわずか10 MBですか?その場合、キャッシュされた後、websettings.Cacheonlyを使用してwebviewを呼び出すだけですか? –

+2

webviewキャッシュフォルダがSDカードに設定されている場合、アプリケーションキャッシュフォルダには影響しません。チェックするために 'webview.clearCache()'を呼び出すことさえできますが、SDカードのデータベースは消去されません。 – Daniel