有什么区别setWebViewClient
vs. setWebChromeClient
在安卓中?
来自源代码:
// Instance of WebViewClient that is the client callback.
private volatile WebViewClient mWebViewClient;
// Instance of WebChromeClient for handling all chrome functions.
private volatile WebChromeClient mWebChromeClient;
// SOME OTHER SUTFFF.......
/**
* Set the WebViewClient.
* @param client An implementation of WebViewClient.
*/
public void setWebViewClient(WebViewClient client) {
mWebViewClient = client;
}
/**
* Set the WebChromeClient.
* @param client An implementation of WebChromeClient.
*/
public void setWebChromeClient(WebChromeClient client) {
mWebChromeClient = client;
}
使用 WebChromeClient 允许您处理 Javascript 对话框、图标、标题和进度。看一下这个例子:向 WebView 添加alert()支持
乍一看,差别太大了网页浏览客户端 & WebChrome客户端。但是,基本上:如果您正在开发一个不需要太多功能但渲染 HTML 的 WebView,您可以只使用WebViewClient
。另一方面,如果您想(例如)加载正在呈现的页面的图标,您应该使用WebChromeClient
对象并覆盖onReceivedIcon(WebView view, Bitmap icon)
.
大多数时候,如果你不想担心这些事情......你可以这样做:
webView= (WebView) findViewById(R.id.webview);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
并且您的 WebView(理论上)将实现所有功能(作为 Android 原生浏览器)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)