返回 SslErrorHandler 上的上一个屏幕
Go back to previous screen on SslErrorHandler
所以在我的网络视图中,我显示了一个针对 SSL 安全问题的错误对话框,Google 已将其设为强制性。代码如下所示:
@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();
}});
我在这里错过了什么?
我解决了这个问题。完成当前 activity 是非常直接的方法。最初我没有意识到,我可以将我当前的 activity 作为全局声明。
builder.setNegativeButton("cancel", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
handler.cancel();
currentActivity.finish();
}
});
所以在我的网络视图中,我显示了一个针对 SSL 安全问题的错误对话框,Google 已将其设为强制性。代码如下所示:
@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();
}});
我在这里错过了什么?
我解决了这个问题。完成当前 activity 是非常直接的方法。最初我没有意识到,我可以将我当前的 activity 作为全局声明。
builder.setNegativeButton("cancel", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
handler.cancel();
currentActivity.finish();
}
});