背景故事(或我正在尝试做的事情)
我的应用程序中有一个 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方面做些什么?