gpt4 book ai didi

java - IndexedDB 在 Android 原生应用中工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:18 25 4
gpt4 key购买 nike

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

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

我们决定在 HTML5 中使用 IndexedDB 在本地存储信息。现在存储工作(据我所知 :) )。下一个问题是通过app获取这些信息,目前还没有解决。不幸的是谷歌没有帮助我。

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

附言编写自定义浏览器不是解决方案。

更新

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

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

更新

尝试使用 DownloadManagerDownloadManager.Request - 它抛出以下异常

java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs: file:///fa4857ad-0e86-454a-a341-123729e9ece0

blob:file uri 相同。

最佳答案

是否需要使用 IndexedDB 进行通信?

如果没有,您可以添加一个 javascript 接口(interface)。只需将数据作为 JSON 字符串传递,然后在 Java 端对其进行解码。

https://developer.android.com/guide/webapps/webview.html#BindingJavaScript

注意安全(不允许用户浏览不同的页面,清理传入的数据,...);-)

关于java - IndexedDB 在 Android 原生应用中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42920000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com