2

如何使用来自 webviewClient 的 onLoadResource() 回调从 android webview 动态加载资源?

以下是我到目前为止编写的代码。当我获得新资源时,它会加载例如单个想象的整个页面,而不是在网页的相同原始 url 上更新和显示图像。

如果一个网页有 5 个图像和文本,我当前的代码将在每次 onLoadResource 尝试加载图像时加载 5 个页面。

我想要它做的是将图像加载到同一页面和任何其他资源中,例如 JS、jquery 等。

@Override
    public void onLoadResource(WebView view, String url) {
   addRequestToProxy(url);

}


public void addRequestToProxy(String url){
//pass url to proxy and wait for respoonse
String response;
//handle response

if(mime-type == IMAGE){
String urlStr = "http://example.com/my.jpg";
        String pageData = "<img src=\"data:" + contentResponse.getMimeType()
                + ";base64," + contentResponse.getContent() + "\" />";

        mWebView.loadDataWithBaseURL(urlStr, pageData, "text/html", null,
                urlStr);
}else{

mWebView.loadDataWithBaseURL(null, response, "text/html", null,
                        null);
}
4

1 回答 1

1

与其重写 onLoadResource() 不如这样做 - shouldInterceptRequest()

webview shouldInterceptRequest 示例

于 2013-06-24T11:07:59.090 回答