Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
341 views
in Technique[技术] by (71.8m points)

android - Goole Play Application update - Keep Getting SSL Error Handler

Google Play keeps rejecting my app updates with SSL Error Handler notifications. I tried every code example on how to implement 'onReceivedSslError'and even tried to remove it completely. all emails mention an older version number. Tried reaching out to support but no answer from them; My latest attempt was:

public void onReceivedSslError(WebView view,
                               SslErrorHandler handler, SslError error) {

    int primaryError = error.getPrimaryError();

    switch (primaryError)
    {
        case SSL_UNTRUSTED:
        case SSL_NOTYETVALID:
        case SSL_DATE_INVALID:
        case SSL_EXPIRED:
        case SSL_IDMISMATCH: {
            handler.cancel();
        }
        break;
    }
    SslCertificate serverCertificate = error.getCertificate();
    String certDomain = serverCertificate.getIssuedTo().getCName();
    try {
        if(certDomain.equals(new URL(error.getUrl()).getHost())) {
            handler.proceed();
        }
        else {
            handler.cancel();
        }
    } catch (MalformedURLException e) {
        e.printStackTrace();
        handler.cancel();
    }
}

Help please, Thank you


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

use this code where you have used you webview..

webview.loadUrl(url);
            webview.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageFinished(WebView view, String url) {
                    
                }

                @Override
                public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
                    final AlertDialog.Builder builder = new AlertDialog.Builder(AboutUsActivity.this);
                    builder.setMessage(R.string.notification_error_ssl_cert_invalid);
                    builder.setPositiveButton("continue", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            
                        }
                    });
                    builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            
                        }
                    });
                    final AlertDialog dialog = builder.create();
                    dialog.show();
                }
            });

Override onReceivedSslError at all webView component. @Override public void onReceivedSslError


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...