Вернуться к предыдущему экрану на SslErrorHandler - PullRequest
0 голосов
/ 29 июня 2018

Итак, в моем веб-представлении я показываю диалоговое окно с сообщением об ошибках безопасности 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, мое веб-представление просто остается на том же экране с белым экраном. Я хочу, чтобы перейти к предыдущему экрану, откуда он пришел. Я попытался добавить 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();
}}); 

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 02 июля 2018

Я решил эту проблему. Это был очень прямой подход с завершением текущей деятельности. Первоначально я не понимал, что я могу иметь свою текущую деятельность, как глобально объявлено.

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