webview处理网页对话框

2017-02-27  本文已影响0人  花香_Android

给一个项目中的webview页面提示框优化处理:

可以看到标题的样式发生了改变,其实我们可以改变对话框里所有的内容.

处理方法:

private class MyWebChromeClient extends WebChromeClient {
 
        @Override
        public boolean onJsConfirm(WebView view, String url, final String message, final JsResult result) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {

                    new AlertDialog.Builder(MainActivity.this)
                            .setTitle("温馨提示:")
                            .setMessage(message)
                            .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    result.confirm();//这里必须调用,否则页面会阻塞造成假死
                               //     mWebView.reload();//重新刷新页面
                                }
                            })
                            .setNegativeButton("取消",new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    result.cancel();
                                }
                            })
                            .setOnCancelListener(new DialogInterface.OnCancelListener() {
                                @Override
                                public void onCancel(DialogInterface dialogInterface) {
                                    result.cancel();
                                }
                            })
                            .show();
                }
            });

            return true;
        }

    }

关键点

抓取网页代码

<a href="https://www.nhw360.com/wishlist/xxx/xxx/" onclick="return confirmRemoveWishlistItem();" title="删除项目" class="btn-remove btn-remove2">取消收藏</a>
function confirmRemoveWishlistItem() {
            return confirm('您是否确认要从我的收藏中删除该产品?');
        }

可以看到js代码是调用了confirm方法的,所以我们在onJsAlert方法设置无效,所以大家可以多试试,有时候也许前端写的代码是alert的,那我们在onJsConfirm中设置肯定是无效的.

上一篇 下一篇

猜你喜欢

热点阅读