在前两天的开发过程成遇到到这样的一个这样的问题,就是即使在WebViewClient中,重写了shouldOverrideUrlLoading,方法在我的某米手机上依然是不能拦截url;
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
后来通过各种谷歌,各种百度,基本就是一个答案就是:
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if(!isLoadUrl){
isLoadUrl = true;
view.loadUrl(url);
}
但是,即使使用了上面得到两种方法,但是本宝宝的某米,仍然是不能拦截点击webView上面的跳转页面,后来发现了原来:
在使用WebView.loadDataWithBaseUrl的时候,baseUrl我传入的是一个null,后来在某个博客上,有人说在有些手机上,如果baseUrl传入的是一个null的话,有些手机是不能拦截的;
这里将baseUrl随便写一个字符串就好了=_=,幸福来的太突然了。
这里的话,如果我们要家在本地的webView的话,我们我们最好要加载BaseUrl,否者在在网页中写的相对路径的话,可能会找不到,而且非常难以排查出来问题。