我在拦截请求标头时也遇到了一些问题WebView myWebView
。
首先,我尝试通过设置自定义来做到这WebViewClient
一点myWebView
。
myWebView.setWebViewClient(new WebViewClient() {
@Override
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.v("USERAGENTBROWSE", "shouldOverrideUrlLoading api >= 21 called");
//some code
return true;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.v("USERAGENTBROWSE", "shouldOverrideUrlLoading api < 21 called");
//some code
return true;
}
});
但是方法shouldOverrideUrlLoading(...)
从未被调用过。我真的不知道为什么。
然后我发现有办法截取一些常见的header,比如"User-Agent"
,"Cache-Control"
等:
myWebView.getSettings().setUserAgentString("your_custom_user_agent_header");
myWebView.getSettings().setCacheMode(int mode);
...
希望它可以帮助某人。