首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WebViewClient和WebChromeClient是互斥的吗?

WebViewClient和WebChromeClient是互斥的吗?
EN

Stack Overflow用户
提问于 2011-06-25 07:36:03
回答 1查看 76.1K关注 0票数 73

从这篇关于WebViewClientWebChromeClient之间差异的great explanation可以看出,如果你使用一个,你就不应该使用另一个(对于同一个WebView对象)。

我的理解正确吗?

如果不是,什么时候可以对同一个WebView对象同时使用WebViewClientWebChromeClient

有没有这样一个例子,对于同一个WebView对象,只使用WebViewClientWebChromeClient就可以实现某个特定的目标?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-25 12:37:21

你当然可以两者都使用,它们只是有不同的功能。设置自己的自定义警报可以让你处理onPageFinished、shouldOverrideUrlLoading等,WebChromeClient可以让你处理Javascript的WebViewClient ()和其他函数。

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

代码语言:javascript
复制
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;
};
...

和/或

代码语言:javascript
复制
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中使用以下命令设置客户端:

代码语言:javascript
复制
webview.setWebViewClient(new MyWebViewClient());
webview.setWebChromeClient(new MyWebChromeClient());
票数 94
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6474768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档