如何通过本机代码访问Android浏览器的本地存储

时间:2013-04-04 07:09:35

标签: android browser local-storage

我正在开发一个必须访问默认浏览器本地存储的Android应用程序。场景是:

  • 打开Android默认浏览器
  • 加载一个页面(我已开发),将一些数据保存在浏览器的本地存储中
  • 关闭浏览器
  • 打开我的申请
  • 应用程序读取保存在浏览器本地存储中的数据并将其显示给用户

有没有办法访问浏览器的本地存储?如果可能的话,如何访问设备上其他已安装浏览器的本地存储?

谢谢!

2 个答案:

答案 0 :(得分:3)

似乎没有办法实现这一目标。我曾尝试使用内容提供商访问浏览器的数据,但您只能访问书签和历史记录。

我还使用WebView而不是浏览器进行了一些测试。我尝试了两种方法:

  • 访问本地存储数据库

您可以像普通的SQLite数据库一样访问本地存储数据库。数据存储在一个包含两列的表中 - 键和值。根据javascript文档写入本地存储是一个同步操作。这很棒!问题是将数据从浏览器(webview)持久保存到文件系统是异步的。因此,如果您向本地存储写入内容,它将存储在内存中,以便可以通过javascript API访问,但它仍然不会持久保存到SQLite数据库。

  • 通过javascript bridge访问本地存储

这是我的个人推荐!您已创建Android javascript界面​​并将其添加到webview。这样您就可以通过JavaScript为JavaScript访问代码。 要非常小心!这可能是一个严重的安全问题!仔细检查你的代码!之后你可以调用你的javascript方法,如webview.loadUrl("javascript://...")

答案 1 :(得分:0)

我使用SharedPreferences插件来访问本机存储,而不是访问Phonegap中的浏览器本地存储。这可能对某些人有用。 The Github Code