我正在尝试通过服务器调用来调用url,因此,例如,每当我访问google.com时,我都会使用url作为参数来访问服务器,并且会向我发送xml作为响应,加载到webview中。但是,当我致电服务器以加载将成为google.com页面一部分的徽标或Doodle时,api返回了一些base64字符串,但从未加载png。它只是显示为残破的图像。
到目前为止,我所做的是:
shouldInterceptRequest
request.getUrl().toString()
WebResourceResponse
:return new WebResourceResponse("image/png", "UTF-8", new ByteArrayInputStream(bytes_here));
。因此,对于可能要加载的不同类型的文件,我有不同的mime类型。webView?.loadDataWithBaseURL(url, response, "text/html", "UTF-8", url)
,使用webView?.loadData
不会在Webview上加载,而是将其加载到地址栏中,这真的不是我想要的。shouldOverrideUrlLoading
,该方法返回true(如果有帮助,我什至尝试返回false)有没有一种方法可以将png base64或字节加载到必须加载的Webview中?还是让Webview正常运行,并自行加载png或其他CSS或JS脚本?
我尝试使用代理,并将其设置为webview,但是这也会导致所有其他请求也受到影响,这不是我想要做的。
或者,我还有其他方法可以通过代理为每个被命中的URL进行服务器调用吗?我也尝试了一点代理,但是对于google.com或https调用,它无法将数据加载回去,并且抛出SSLException,有时它甚至在将数据发送回之前就只是关闭了连接。