gpt4 book ai didi

android - WebViewClient 和 WebChromeClient 是互斥的吗?

转载 作者:IT老高 更新时间:2023-10-28 13:17:15 25 4
gpt4 key购买 nike

从此great explanation关于 WebViewClientWebChromeClient 之间的区别,似乎如果你使用一个,你不应该使用另一个(对于同一个 WebView 对象)。

我的理解正确吗?

如果不是,何时将 WebViewClient WebChromeClient 用于同一个 WebView 对象?

是否有一个例子是只使用 WebViewClient WebChromeClient 对于同一个 WebView 对象会完成某个目标吗?

最佳答案

您当然可以同时使用它们,它们只是具有不同的功能。设置自己的自定义WebViewClient让你处理onPageFinished、shouldOverrideUrlLoading等,WebChromeClient让你处理Javascript的alert()等函数。

只需创建自己的类,例如:

public class MyWebChromeClient extends WebChromeClient {
//Handle javascript alerts:
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
{
Log.d("alert", message);
Toast.makeText(context, message, 3000).show();
result.confirm();
return true;
};
...

和/或

public class MyWebViewClient extends WebViewClient {
@Override
//Run script on every page, similar to Greasemonkey:
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:alert('hi')");
}
...

只需覆盖文档中描述的函数,然后在 onCreate 中设置您的客户端:

webview.setWebViewClient(new MyWebViewClient());
webview.setWebChromeClient(new MyWebChromeClient());

关于android - WebViewClient 和 WebChromeClient 是互斥的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474768/

25 4 0