Webview не может загрузить https url в android? - программирование
Подтвердить что ты не робот

Webview не может загрузить https url в android?

Я использую приложение webview в android. Когда я пытаюсь загрузить https url один или два раза, завершает действие. Agian пытается загрузить https url, показывая, что веб-страница недоступна. пожалуйста, найдите ниже изображение, что я получил.

enter image description here

Когда я снова нажимаю на этот URL-адрес, он показывает веб-адрес.

Я использовал приведенный ниже код для загрузки URL-адреса.

webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true); 
webView.loadUrl("https://www.facebook.com");
webView.clearView();
webView.measure(100, 100);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);



    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @SuppressLint("NewApi")
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler,     SslError error) {
            super.onReceivedSslError(view, handler, error);

            // this will ignore the Ssl error and will go forward to your site
            handler.proceed();
            error.getCertificate();
        }
    });

пожалуйста, помогите парням.......

Заранее спасибо

4b9b3361

Ответ 1

Попробуйте использовать атрибуты ниже:

        webView = (WebView) findViewById(R.id.webView1);
        WebSettings settings = webView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setDomStorageEnabled(true);

Ответ 2

Добавьте параметры Интернета в свой манифест. xml

<uses-permission android:name="android.permission.INTERNET" />

и проверьте доступ к Интернету на своем устройстве.

Ответ 3

Удалить эту строку:

super.onReceivedSslError(view, handler, error);

и в этом методе

public boolean shouldOverrideUrlLoading(WebView view, String url) {

повернуть возврат в false вот так:

 return false;

Это помогло мне

Ответ 4

Вы должны удалить это

super.OnReceiveSslError(view,handler,error);

Ответ 5

Добавьте этот метод переопределения в реализацию WebViewClient. Вам нужно будет скомпилировать его с Android SDK 2.2 (API уровня 8) или более поздней. Этот метод появляется в общедоступном SDK с 2.2 (уровень API 8), но мы протестировали его на устройствах, работающих под управлением 2.1, 1.6 и 1.5, и он также работает на этих устройствах (так очевидно, что поведение было все время).

WebView.setWebViewClient(new WebViewClient() {

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

         handler.proceed(); 

     }
    });

Ответ 6

Одна из возможностей - это состояние гонки.

Вы загружаете https://www.facebook.com/ перед настройкой WebViewClient, поэтому существует вероятность того, что ваша реализация OnReceivedSslError() никогда не будет вызвана если вы получите достаточно быстрый ответ от facebook.

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

Кроме того, я думаю, вы должны просто вернуть false из shouldOverrideUrlLoading(), если вы хотите, чтобы страница загружалась, а не пыталась перезагрузить страницу - это может привести к бесконечной рекурсии/сбою - возможно, в зависимости от времени.

Ответ 7

Ответ на декабрь 2016 года:

Если это происходит только на некоторых устройствах с Android 5+ и только на определенных страницах, это, скорее всего, из-за этой ошибки хрома:

https://www.chromium.org/developers/androidwebview/webview-ct-bug

Решение состоит в следующем:

  • сообщите клиентам обновить веб-просмотр до 55+ (возможно, это будет нелегко на всех устройствах).
  • сообщите клиентам о переходе системных часов назад на несколько недель (не очень хорошее решение).
  • получить сертификат не Symantec

Ответ 8

Добавьте файл манифеста

<uses-permission android:name="android.permission.INTERNET" />

Когда вы получаете доступ к веб-контенту, нужно получить разрешение на доступ к Интернету, тогда он будет загружен только.

Ответ 9

Попробуйте это

 WebView webview = (WebView)findViewById(R.id.webView); 
    Webview.setBackgroundColor(0);
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.loadUrl("https://www.facebook.com");
    webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);