2013-04-04 120 views
4

我正在开发一个android应用程序,它必须访问默认浏览器本地存储。该方案是:如何通过本地代码访问android浏览器的本地存储

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

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

谢谢!

回答

3

看来,没有办法做到这一点。我试图使用内容提供商访问浏览器的数据,但您只能访问书签和历史记录。

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

  • 访问本地存储数据库

您可以像访问正常SQLite数据库的本地存储数据库。数据存储在具有两列的单个表格中 - 键和值。根据javascript文档写入本地存储是一个同步操作。这很棒!问题是将浏览器(webview)中的数据保存到文件系统是异步的。所以如果你写了一些东西到本地存储,它会被存储在内存中,所以它可以通过javascript API访问,但是它仍然不会被保存到SQLite数据库中。

  • 通过访问本地存储的JavaScript桥

这是我个人的建议!您已创建一个Android JavaScript界面​​并将其添加到webview。通过这种方式,您可以为JavaScript提供一个API来访问您的代码。 要非常小心!这可能是一个严重的安全问题!仔细检查你的代码!之后,你可以打电话给你的这样的JavaScript方法webview.loadUrl("javascript://...")

+0

是的,这基本上是答案。如果浏览器是单独的应用程序(例如默认浏览器),则只能访问它提供的几件事情。如果它是在您的应用程序中运行的WebView,则您有更多选择,并受到并发性和更新类型问题的限制。 – 2013-05-09 17:32:55

0

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

相关问题