总结WebView的一些坑

来源:互联网 发布:nginx 域名解析 编辑:程序博客网 时间:2024/05/02 02:15

总结使用WebView遇到的一些坑

1. onJsAlert只调用一次的问题

问题描述:

假设我们的WebView加载了一个有点击按钮弹窗功能的html页面

在webView中的处理:

   webView.getSettings().setJavaScriptEnabled(true);   webView.setWebChromeClient(new WebChromeClient() {            @Override            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {                new AlertDialog.Builder(WebActivity.this)                        .setTitle("啊啊啊")                        .setMessage("什么鬼啊")                        .create().show();                return true;            }        });

结果:

再次点击时,却没有弹窗。

解决方案:

    webView.setWebChromeClient(new WebChromeClient() {            @Override            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {                new AlertDialog.Builder(WebActivity.this)                        .setTitle("啊啊啊")                        .setMessage("什么鬼啊")                        .create().show();                result.cancel();                //或result.confirm();                return true;            }        });

描述:
因为Js在PC浏览器中弹窗后会出现“确认”,“取消”的选择,这里result就相当于是这个窗口的两个按钮。

tip:
result.cancel();
取消
result.confirm();
确认

1 0
原创粉丝点击