当前位置:  开发笔记 > Android > 正文

如何处理webview确认对话框?

如何解决《如何处理webview确认对话框?》经验,为你挑选了1个好方法。

我在WebView中显示一个网页,在网页上有一个按钮.当您单击该按钮时,应该弹出一个确认对话框,但它不会显示在我的WebView中.如果我在Android浏览器中访问同一个网页,它会弹出.任何人都知道如何处理来自WebView内部网页的弹出对话框?



1> brockoli..:

好的,找到了答案,就在这里!

为了处理来自WebView中网页的弹出确认,您需要覆盖WebChromeClient中的onJsConfirm方法,以将弹出窗口显示为Android Alert对话框.这是执行此操作的代码.

final Context myApp = this; 
final class MyWebChromeClient extends WebChromeClient {
    @Override
    public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
        new AlertDialog.Builder(myApp)
        .setTitle("App Titler")
        .setMessage(message)
        .setPositiveButton(android.R.string.ok,
                new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int which)
            {
                result.confirm();
            }
        })
        .setNegativeButton(android.R.string.cancel,
                new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int which)
            {
                result.cancel();
            }
        })
        .create()
        .show();

        return true;
    }
}

不要忘记在WebView中设置WebChromeClient ...

    mWebView.setWebChromeClient(new MyWebChromeClient());

注意..这不是我的代码,但是我发现它并且它非常适合在WebView中处理javascript确认对话框!

干杯!

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有