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

Kir*_*rov 5 browser android local-storage

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

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

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

谢谢!

Kir*_*rov 4

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

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

  • 访问本地存储数据库

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

  • 通过javascript桥访问本地存储

这是我个人的推荐!您已经创建了一个 Android javascript 界面并将其添加到 web 视图中。通过这种方式,您可以向 javascript 提供 API 来访问您的代码。要非常小心!这可能是一个严重的安全问题!仔细检查您的代码!之后你可以像这样调用你的javascript方法webview.loadUrl("javascript://...")