Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java webview在iframe上使用BaseURL加载数据_Java_Android_Webview_Webkit_Webviewclient - Fatal编程技术网

Java webview在iframe上使用BaseURL加载数据

Java webview在iframe上使用BaseURL加载数据,java,android,webview,webkit,webviewclient,Java,Android,Webview,Webkit,Webviewclient,背景故事(或我想做的事) 我的应用程序中有一个webview,可以从资产文件夹加载html文件。该文件中有2个iframe 然后用户在应用程序中导入一些zip文件,其中包括要加载到这些iFrame中的其他文件。我通过将这些文件的file://URL传递给主页上的javascript函数(带有2个iframe的函数)来加载这些文件,其余的是javascript。然后,在iframes中加载用户文件后,主页向中注入一些额外的js和javascript。一切正常 问题 都很好。除非文件是xhtml文件

背景故事(或我想做的事)

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

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

问题

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

我迄今所做的尝试

我试着在android版本中也这么做。但我无论如何都不需要在java端的webview中以iframe为目标

我使用的是
shouldOverrideUrlLoading(WebView视图,字符串url)
,如果是.xhtml url,则返回true。我认为(由于该函数在CEF中的对应项),该函数中的第一个参数将是iframe,并使用
loadDataWithBaseUrl
。事实证明,它不是iframe,而是主webview本身

问题

是否可以使用类似的函数将数据从java加载到iframe? 如果没有,您对以text/html而不是text/xhtml格式传输此类文件有何建议

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

好的

通过在导入时将.xhtml文件重命名为.html文件,解决了此问题

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

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