25

Webview を使用してデータを表示する Android アプリの開発で大きな問題に直面しています。webview で使用している Web サイトは、HTML 5 の localStorage API を使用しています。

この機能を有効にするために、次のように webview 設定を設定しました。

webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);

そのため、localStorage API は機能しますが、アプリを閉じる (そしてプロセスを強制終了する) と、localStorage は完全に消去され、リロードするとすべてのデータが失われます。

私の質問は簡単です: アプリを閉じても Webview の DomStorage を永続化する方法は?

今後ともご回答よろしくお願いいたします。

4

6 に答える 6

10

DatabasePath を設定しましたか? 呼び出しを設定しないと、Android はデフォルトで DOMDatabase を保存する場所を認識しません。

webview.getSettings().setDatabasePath()
于 2011-03-28T22:04:17.537 に答える
10
// Confimed on android 2.1 emulator
// enable javascript localStorage

WebSettings webSettings = myWebView.getSettings();
webSettings.setDomStorageEnabled(true);   // localStorage

// e.g., if your package is www.myapp.whatever;
webSettings.setDatabasePath("/data/data/www.myapp.whatever/databases/");
于 2011-05-02T10:43:24.777 に答える
7

データベースを有効にし、そのパスを設定する必要があります。

webview.getSettings().setDatabaseEnabled(true);
webview.getSettings().setDatabasePath();
webSettings.setDomStorageEnabled(true);

最初の行はかなり長い間私を捕まえました...

于 2012-06-13T21:34:05.770 に答える
0

この問題は、Android v4.1.1 のアップデートでこの投稿で解決されました。

于 2013-10-28T09:32:24.420 に答える
0

上記の投稿では、2 つの異なる概念が混在しています。

セッションが閉じられた後もデータを保持するには、(JavaScript で) sessionStorage を使用していないことを確認してください。

DOMStorage とデータベース ストレージは 2 つの異なるものです。データベース ストレージは HTML5 の一部ではありません: http://www.tutorialspoint.com/html5/html5_web_sql.htm

DOMStorage はより HTML5 に関連しており、ブラウザを閉じると消えるように設計されたセッション ストレージが含まれています。「ローカル ストレージ」「DOM ストレージ」で検索すると、さらにヒットします。

http://viralpatel.net/blogs/introduction-html5-domstorage-api-example/

したがって、DOMstorage を有効にするには、これが必要です: webSettings.setDomStorageEnabled(true);

于 2013-07-02T11:19:56.817 に答える
0
WebSettings webSettings = myWebView.getSettings();
webView.getSettings().setDatabaseEnabled(true);

最新の API に必要なのはこれだけです。データベース パスは chrome によって自動的に管理されます

于 2021-09-17T05:12:23.350 に答える