android - 返回到 SslErrorHandler 上的上一个屏幕
问题描述
因此,在我的 webview 中,我显示了一个错误对话框,用于显示 Google 强制要求的 SSL 安全问题。代码如下所示:
@Override
public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error)
{
final AlertDialog.Builder builder = new AlertDialog.Builder(LaunchWVActivity.this);
builder.setMessage("SSL cert is invalid.Install a valid certificate or click continue to proceed.");
builder.setPositiveButton("continue", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
handler.proceed();
}
});
builder.setNegativeButton("cancel", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
handler.cancel();
}
});
final AlertDialog dialog = builder.create();
dialog.show();
}
当使用点击cancel
时,我的 webview 只是停留在与白屏相同的屏幕上。我想将用户导航到他来自的上一个屏幕。我已经尝试添加一个onCancelListener
,但它没有奏效。
像这样的东西
dialog.setCancelable(true);
dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// dialog dismiss without button press
Log.d(TAG,"Cancel pressed");
webview.goBack();
}});
我在这里想念什么?
解决方案
我解决了这个问题。这是完成当前活动的非常直接的方法。最初我没有意识到,我可以将我当前的活动作为全球声明。
builder.setNegativeButton("cancel", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
handler.cancel();
currentActivity.finish();
}
});
推荐阅读
- mysql - 当表作为参数传递时,mysql-connector-python 在表名周围添加单引号。表名来自 Flask 会话变量
- python - TypeError:即使我没有,也不能将序列乘以“numpy.float64”类型的非整数
- postgresql - 如何在 Postgres 中删除区分大小写?
- ios - 如何使用 Firestore 对象数据填充 tableview
- liferay - Liferay 6.2 身份验证挂钩迁移到 Lr 7.2 片段?
- flutter - 我对进度指示器有疑问,因为在发送 HTTP 请求时指示器未更新状态
- python - Discord重写警告系统
- java - Java如何打印数组?
- python - 如何修复“无法执行脚本”错误
- c# - MvvmCross + Xamarin.Forms“没有隐式引用转换......”