一、关于浏览器加载还是自己的webview加载的问题
mWebview.setWebViewClient(new WebViewClient());
只要调用上面的方法自然会调用自己的webview去加载url而不是通过浏览器去加载。
原因:如果不调用setWebViewClient方法,会调用app的浏览器去处理。默认的new WebViewClient()内shouldOverrideUrlLoading是return false,就是调用webview去处理url。
二、shouldOverrideUrlLoading return true 和false的区别
mWebview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//tvUrl.setText("URL:" + url);
//参数里这个url就是点击网页里面的链接的url
return false;
}
@Override
public void onPageFinished(WebView view, String url) {
//下面的代码是为了获取cookie
CookieManager cookieManager = CookieManager.getInstance();
String cookie = cookieManager.getCookie(url);
Log.i("wxbnb", "onPageFinished: " + cookie);
super.onPageFinished(view, url);
}
});
解释:
shouldOverrideUrlLoading(WebView view, String url) return ture表示由app来处理这个url,webview并不会加载这个url;
shouldOverrideUrlLoading(WebView view, String url) return false表示由webview来加载这个url,默认的mWebview.setWebViewClient(new WebViewClient());就是返回false。