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对象后,问题得到解决。