5

デフォルトのブラウザのローカル ストレージにアクセスする必要がある Android アプリケーションを開発しています。シナリオは次のとおりです。

  • Android のデフォルト ブラウザを開く
  • ブラウザーのローカル ストレージにデータを保存するページ (私が開発したもの) を読み込みます
  • ブラウザを閉じる
  • アプリケーションを開く
  • アプリケーションは、ブラウザのローカル ストレージに保存されたデータを読み取り、ユーザーに表示します。

ブラウザのローカル ストレージにアクセスする方法はありますか? また、可能であれば、デバイスにインストールされている他のブラウザのローカル ストレージにアクセスする方法を教えてください。

ありがとう!

4

2 に答える 2

4

これを達成する方法はないようです。コンテンツ プロバイダーを使用してブラウザのデータにアクセスしようとしましたが、ブックマークと履歴しかアクセスできません。

また、ブラウザの代わりに WebView を使用していくつかのテストを行いました。私は2つのアプローチを試みました:

  • ローカル ストレージ データベースにアクセスする

通常の SQLite データベースと同じように、ローカル ストレージ データベースにアクセスできます。データは、キーと値の 2 つの列を持つ 1 つのテーブルに格納されます。JavaScript のドキュメントによると、ローカル ストレージへの書き込みは同期操作です。これは素晴らしい!問題は、ブラウザ (webview) からファイル システムへのデータの永続化が非同期であることです。そのため、ローカル ストレージに何かを書き込むと、メモリに格納されるため、javascript API を介してアクセスできますが、SQLite データベースには永続化されません。

  • JavaScript ブリッジ経由でローカル ストレージにアクセスする

個人的なおすすめはこれ!Android JavaScript インターフェイスを作成し、それを webview に追加しました。このようにして、コードにアクセスするための API を JavaScript に提供します。非常に注意してください!これは深刻なセキュリティ上の問題になる可能性があります。コードを再確認してください!その後、次のようにJavaScriptメソッドを呼び出すことができますwebview.loadUrl("javascript://...")

于 2013-05-09T16:03:59.840 に答える
0

Phonegap 内のブラウザのローカル ストレージにアクセスする代わりに、SharedPreferences プラグインを使用してネイティブ ストレージにアクセスしました。これは一部の人にとっては役立つかもしれません。 Github コード

于 2014-07-13T09:50:30.867 に答える