【问题标题】:Passing context to alert dialog in onReceivedSslError in SystemWebViewClient.java file cordova在 SystemWebViewClient.java 文件 cordova 中的 onReceivedSslError 中将上下文传递给警报对话框
【发布时间】:2017-04-12 07:06:15
【问题描述】:

我想在SystemWebViewClient 类的onReceivedSslError 方法中显示警报对话框。那么我应该将什么参数传递给警报对话框。我尝试了“this,MainActivity.this,view.this”但它不起作用。提前致谢。

目前我正在使用的代码

public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
    AlertDialog.Builder builder = new AlertDialog.Builder(Tab1Activity.this);
    AlertDialog alertDialog = builder.create();
    String message = "SSL Certificate error.";
    switch (error.getPrimaryError()) {
        case SslError.SSL_UNTRUSTED:
            message = "The certificate authority is not trusted.";
            break;
        case SslError.SSL_EXPIRED:
            message = "The certificate has expired.";
            break;
        case SslError.SSL_IDMISMATCH:
            message = "The certificate Hostname mismatch.";
            break;
        case SslError.SSL_NOTYETVALID:
            message = "The certificate is not yet valid.";
            break;
    }

    message += " Do you want to continue anyway?";
    alertDialog.setTitle("SSL Certificate Error");
    alertDialog.setMessage(message);
    alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // Ignore SSL certificate errors
            handler.proceed();
        }
    });

    alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            handler.cancel();
        }
    });
    alertDialog.show();
}    

【问题讨论】:

  • 将 view.getContext() 作为参数添加到 alertDialog.builder 对象后问题得到解决。

标签: android cordova sslerrorhandler


【解决方案1】:

问题不在于您传递的上下文,而是您试图从不允许的地方显示对话框。

您可以在活动类中显示通知或创建 showDialod() 函数,然后从 SystemWebViewClient 类中调用它。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2013-09-17
    • 2022-06-28
    • 1970-01-01
    相关资源
    最近更新 更多