webview组件对android的开发非常有用。但它自己发送和接收HTTP请求。 有没有办法通过本机代码获取/设置webview的网络流量?这就是说,会有一个委托类,webview的所有网络流量(输入/输出,包括ajax流量)都可以委托给这个类,然后该类使用URLConnection发送/接收用于提供webview的HTTP请求。例如,我可以将对Webview的响应的状态代码从301更改为304。
或者没有办法做到这一点?
答案 0 :(得分:0)
在WebView上设置WebViewClient
(1)可以帮助您接收页面加载/完成请求,http身份验证请求,ssl错误,重定向过多等错误。此外,您还可以拦截资源请求WebViewClient::shouldInterceptRequest
(2)并返回回复。
webview.setWebViewClient(new WebViewClient() {
@Override
//method deprecated. Use shouldInterceptRequest(WebView view, WebResourceRequest request) on API 21 and above.
public WebResourceResponse shouldInterceptRequest (final WebView view, String url) {
if ( interested ) {
// url load/cache and return response
} else {
return super.shouldInterceptRequest(view, url);
}
}
}