【问题标题】:Custom alert box not loading in android WebView自定义警报框未在 android WebView 中加载
【发布时间】:2015-07-07 05:51:49
【问题描述】:

在我的应用程序中,我有一个 WebView 来加载 Web 应用程序。登录是使用带有用户名和密码的警报框完成的。当我尝试在 android 浏览器中加载 URL 时,警告框显示为 this。但是当我尝试在 WebView 中加载相同的 URL 时,它不会显示任何警告框。

添加以下代码后

mwebView.setWebChromeClient(new WebChromeClient(){

            @Override
            public boolean onJsAlert(WebView view, String url, String message, android.webkit.JsResult result) {
                Log.d("JSALERT", message);
                new AlertDialog.Builder(view.getContext()).setMessage(message).setCancelable(true).show();
                result.confirm();
                return true;
            }
        });

WebView 显示简单的警报框消息,但不显示自定义警报框(该方法没有被触发)。

在我的应用程序WebView 中,我想显示登录警报(包括登录字段和Buttons)。如果有人知道解决方案,请与我分享

提前致谢

【问题讨论】:

  • 能否在日志中获取Log.d("JSALERT", message);
  • 我删除了我的答案。我没有看到确切的代码
  • 如果它是一个简单的警报,我能够记录消息...对于这个登录警报,我无法收到任何消息(函数没有被触发)

标签: javascript android google-chrome webview


【解决方案1】:

嗯,您在浏览器中看到的实际上并不是一个“警报框”——它是一个 HTTP 身份验证对话框。为了处理它,您需要覆盖WebViewClient.onReceivedHttpAuthRequest,请参阅docs

您可以在Android浏览器herehere查看相关代码。

【讨论】:

  • 非常感谢,首先我认为这是一个自定义警报,现在我才意识到它是一个 HTTP 身份验证请求......你提供的代码就像一个魅力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
相关资源
最近更新 更多