Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将上下文传递给SystemWebViewClient.java文件cordova中OnReceivedSlerror中的警报对话框_Android_Cordova_Sslerrorhandler - Fatal编程技术网

Android 将上下文传递给SystemWebViewClient.java文件cordova中OnReceivedSlerror中的警报对话框

Android 将上下文传递给SystemWebViewClient.java文件cordova中OnReceivedSlerror中的警报对话框,android,cordova,sslerrorhandler,Android,Cordova,Sslerrorhandler,我想在SystemWebViewClient类的onReceivedSslError方法中显示警报对话框。那么我应该向警报对话框传递什么参数。我尝试了“this,main activity.this,view.this”,但它不起作用。提前谢谢 我当前使用的代码 public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) { AlertDialog.Builder

我想在
SystemWebViewClient
类的
onReceivedSslError
方法中显示警报对话框。那么我应该向警报对话框传递什么参数。我尝试了“
this
main activity.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();
}    

问题不在于您传递的上下文,而是您试图从一个不允许的位置显示对话框

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


希望有帮助。

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