gpt4 book ai didi

java - iframe 上的 webview loadDataWithBaseUrl

转载 作者:行者123 更新时间:2023-12-01 04:28:14 27 4
gpt4 key购买 nike

背景故事(或我正在尝试做的事情)

我的应用程序中有一个 webview,它从 asset 文件夹加载 html 文件。该文件中有 2 个 iframe。

然后用户在应用程序中导入一些 zip 文件,其中包括要在这些 iframe 中加载的其他文件。我通过将 file://url 传递给主页上的 javascript 函数(带有 2 个 iframe 的那个)来加载这些文件,其余的就是 javascript。然后,在用户文件加载到 iframe 中后,主页会注入(inject)一些额外的 js 和 javascript。一切工作正常。

问题

一切都好。除非文件是 xhtml 文件。注入(inject)的 javascript 有一些 dom 操作函数,当文件加载为 text/xhtml 时,这些函数不起作用。我有使用 chromium 嵌入式框架的同一应用程序的 PC 版本,我通过编写一个自定义资源加载器来加载所有带有 text/html mimetype 的 xhtml 文件来解决这个问题。

到目前为止我尝试过的

我尝试在 Android 版本中执行相同的操作。除非我无论如何都无法在 java 端的 webview 中定位 iframe。

我正在使用 shouldOverrideUrlLoading(WebView view, String url) ,如果它是 .xhtml url,则返回 true。我认为(因为该函数在 CEF 中的对应项)该函数中的第一个参数将是 iframe 并使用了 loadDataWithBaseUrl。事实证明,这不是 iframe,而是主 webview 本身。

问题

有没有办法用类似的函数从java将数据加载到iframe?如果没有,您对将此类文件传输为 text/html 而不是 text/xhtml 有什么建议吗?

或者我可以在 javascript 方面做些什么吗?

最佳答案

好的,

通过在导入时将 .xhtml 文件重命名为 .html 文件解决了这种情况。

但是 webview 仍然缺乏从 java 案例访问 iframe 的能力。通过使用单独的 webview 而不是 iframe 解决了这个问题。

我想我必须使用部分 Chrome 源(ChromeView)才能访问内部框架。虽然 api 与 WebView 不相似或不兼容,但我可以使用 chromeviews 自己的 api。

关于java - iframe 上的 webview loadDataWithBaseUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18264093/

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