【问题标题】:Go back to previous screen on SslErrorHandler返回到 SslErrorHandler 上的上一个屏幕
【发布时间】:2018-06-29 16:30:37
【问题描述】:

因此,在我的 web 视图中,我显示了一个错误对话框,用于显示 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();
}}); 

我在这里缺少什么?

【问题讨论】:

    标签: android webview sslerrorhandler


    【解决方案1】:

    我解决了这个问题。这是完成当前活动的非常直接的方法。最初我没有意识到,我可以将我当前的活动作为全球声明。

     builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() 
                    {                   
                        @Override
                        public void onClick(DialogInterface dialog, int which) 
                        {                           
                            handler.cancel(); 
                            currentActivity.finish();                          
                        }
                });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 2018-11-28
      • 2023-03-22
      • 2020-02-15
      • 2016-11-01
      相关资源
      最近更新 更多