1

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

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

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

问题

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

到目前为止我尝试了什么

我试图在 android 版本中做同样的事情。除了我无论如何都没有在java端的webview中定位一个iframe。

shouldOverrideUrlLoading(WebView view, String url)如果它是 .xhtml url,我正在使用并返回 true。我认为(因为该函数在 CEF 中的对应项)该函数中的第一个 arg 将是 iframe 和 used loadDataWithBaseUrl。原来它不是 iframe,而是主 webview 本身。

问题

无论如何,是否可以使用类似的功能将数据从 java 加载到 iframe?如果没有,您对将此类文件传输为 text/html 而不是 text/xhtml 有什么建议。

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

4

1 回答 1

0

好的,

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

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

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

于 2013-08-23T12:09:17.800 回答