WebView shouldOverrideUrlLoading功能
- 最近查了一下WebView WebView shouldOverrideUrlLoading接口的资料,发现网上有很多错误的解释。
- 这里以WebView(58)为基础,记录一下该接口的功能。
错误解释:阻止调用系统浏览器
- shouldOverrideUrlLoading接口,并非阻止WebView loadUrl时调用系统浏览器。
- 若想让WebView loadUrl时,不会调用系统浏览器,需要设置自定的WebViewClient。
# 设置WebViewClient即可
webView.setWebViewClient(new WebViewClient());
shouldOverrideUrlLoading接口
- 该接口,主要是给WebView提供时机,让其选择是否对UrlLoading进行拦截。
- 关于该接口的返回值,True(拦截WebView加载Url),False(允许WebView加载Url)
- 以下为官网关于该接口返回值的解释:
If a WebViewClient is provided, returning true causes the current WebView to abort loading the URL, while returning false causes the WebView to continue loading the URL as usual.
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// WebView不加载该Url
return true;
}
});
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// WebView加载该Url
return false;
}
});