从这篇关于WebViewClient
和WebChromeClient
之间差异的great explanation可以看出,如果你使用一个,你就不应该使用另一个(对于同一个WebView对象)。
我的理解正确吗?
如果不是,什么时候可以对同一个WebView
对象同时使用WebViewClient
和WebChromeClient
?
有没有这样一个例子,对于同一个WebView
对象,只使用WebViewClient
和WebChromeClient
就可以实现某个特定的目标?
发布于 2011-06-25 12:37:21
你当然可以两者都使用,它们只是有不同的功能。设置自己的自定义警报可以让你处理onPageFinished、shouldOverrideUrlLoading等,WebChromeClient可以让你处理Javascript的WebViewClient ()和其他函数。
只需创建您自己的类,例如:
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());
https://stackoverflow.com/questions/6474768
复制相似问题