Поддерживает ли веб-представление на Android поддержку SSL?

Управление WebView на android, поддерживает ли он SSL?

Я пытаюсь загрузить веб-страницу, которая использует надежный сертификат ssl, но WebView просто белый.

Какие-либо предложения?

Solutions Collecting From Web of "Поддерживает ли веб-представление на Android поддержку SSL?"

Не эксперт, просто то, что я мог найти в Интернете. Из того, что я понимаю, WebView действительно поддерживает ssl, однако пустой экран является признаком того, что WebView не считает, что сертификат действителен. Это может произойти с сертификатом, который является самозаверяющим, или с корневым auth, который не настроен в android (отлично действующий сертификат не проверяется). В любом случае, если вы используете froyo или лучше, вы можете попробовать что-то вроде:

 import android.webkit.WebView; import android.webkit.WebViewClient; import android.webkit.SslErrorHandler; import android.net.http.SslError; ... engine = (WebView) findViewById(R.id.my_webview); engine.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); } }); 

Чтобы правильно обрабатывать SSL-сертификат validationoogle в соответствии с обновленной политикой безопасности, измените свой код, чтобы вызывать SslErrorHandler.proceed () всякий раз, когда сертификат, представленный сервером, соответствует вашим ожиданиям и вызывает в противном случае SslErrorHandler.cancel ().

Например, я добавляю диалоговое окно с предупреждением, чтобы пользователь подтвердил и, похоже, Google больше не показывает предупреждение.

  @Override public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) { final AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext()); String message = "SSL Certificate error."; switch (error.getPrimaryError()) { case SslError.SSL_UNTRUSTED: message = "The certificate authority is not trusted."; break; case SslError.SSL_EXPIRED: message = "The certificate has expired."; break; case SslError.SSL_IDMISMATCH: message = "The certificate Hostname mismatch."; break; case SslError.SSL_NOTYETVALID: message = "The certificate is not yet valid."; break; } message += " Do you want to continue anyway?"; builder.setTitle("SSL Certificate Error"); builder.setMessage(message); 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(); } 

После этого изменения не будут отображаться предупреждения.

Вы должны разрешить настройку веб-просмотра для просмотра веб-сайта на основе SSL:

 webView.getSetting().setDomStorageEnable(true);