IndexedDB 在 Android 本机应用程序中工作

Irc*_*ver 6 java android indexeddb

我们有应用程序来查看一些特定的材料。在材料类型中有HTML5显示在WebView应用程序内的小部件中的演示文稿。现在我们需要获取有关此视图的详细信息(例如幻灯片持续时间、列表元素选择可用的位置等)。

这是客户想要的 - 我们无法改变它。

我们决定使用IndexedDBinsideHTML5在本地存储信息。现在存储作品(据我所知:))。下一个问题是通过应用程序获取此信息,但尚未解决。不幸的是谷歌没有帮助我。

IndexedDB如果我知道它的路径,如何从文件中获取信息?或者您知道另一种将数据从 html 传输到本机应用程序的方法吗?

PS编写自定义浏览器无法解决。

更新

找到了从 JS 加载文件的解决方案。在 chrome 浏览器中,它会自动保存在下载中。在 android 应用程序中,我设置WebView反对DownloadListener侦听文件保存事件。

捕捉保存文件完美无缺。但是 url 路径看起来像blob:file/...,我无法从中获取信息。尝试使用ContentResolver,创建File对象,用空替换blob:字符串,开始ACTION_VIEW意图 - 没有任何帮助。

更新

尝试使用DownloadManagerDownloadManager.Request- 它引发以下异常

java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs: file:///fa4857ad-0e86-454a-a341-123729e9ece0
Run Code Online (Sandbox Code Playgroud)

blob:fileuri相同。

Irc*_*ver 0

我们决定使用ServerSocketlocalhost 作为设备上的 Web 服务器。然后Html向其发送 http 响应。可能使用 @Michael2 所写的 java 脚本绑定会更好,但我们的解决方案是在他的帖子之前实现的。:-)