如何处理Webview确认对话框?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (81)

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

提问于
用户回答回答于

为了处理来自WebView中网页的弹出式确认,需要覆盖WebChromeClient中的onJsCon固方法,以将弹出显示为一个Android警报对话框。

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());

扫码关注云+社区

领取腾讯云代金券