gpt4 book ai didi

android - setWebViewClient 与 setWebChromeClient 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 12:52:43 26 4
gpt4 key购买 nike

setWebViewClient和Android中的setWebChromeClient有什么区别?

最佳答案

来自source code :

// 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 对话框、网站图标、标题和进度。看看这个例子:Adding alert() support to a WebView

乍一看,差别太多了WebViewClient & WebChromeClient .但是,基本上:如果您正在开发一个不需要太多功能但呈现 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 原生浏览器)。

关于android - setWebViewClient 与 setWebChromeClient 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2835556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com