Ответ 1
Попробуйте использовать атрибуты ниже:
webView = (WebView) findViewById(R.id.webView1);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
Я использую приложение webview в android. Когда я пытаюсь загрузить https url один или два раза, завершает действие. Agian пытается загрузить https url, показывая, что веб-страница недоступна. пожалуйста, найдите ниже изображение, что я получил.
Когда я снова нажимаю на этот 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();
}
});
пожалуйста, помогите парням.......
Заранее спасибо
Попробуйте использовать атрибуты ниже:
webView = (WebView) findViewById(R.id.webView1);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
Добавьте параметры Интернета в свой манифест. xml
<uses-permission android:name="android.permission.INTERNET" />
и проверьте доступ к Интернету на своем устройстве.
Удалить эту строку:
super.onReceivedSslError(view, handler, error);
и в этом методе
public boolean shouldOverrideUrlLoading(WebView view, String url) {
повернуть возврат в false
вот так:
return false;
Это помогло мне
Вы должны удалить это
super.OnReceiveSslError(view,handler,error);
Добавьте этот метод переопределения в реализацию 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();
}
});
Одна из возможностей - это состояние гонки.
Вы загружаете https://www.facebook.com/ перед настройкой WebViewClient, поэтому существует вероятность того, что ваша реализация OnReceivedSslError() никогда не будет вызвана если вы получите достаточно быстрый ответ от facebook.
Это объясняет, почему это работает для некоторых людей, а не для других, и всегда работает, если страница перезагружается.
Кроме того, я думаю, вы должны просто вернуть false из shouldOverrideUrlLoading(), если вы хотите, чтобы страница загружалась, а не пыталась перезагрузить страницу - это может привести к бесконечной рекурсии/сбою - возможно, в зависимости от времени.
Ответ на декабрь 2016 года:
Если это происходит только на некоторых устройствах с Android 5+ и только на определенных страницах, это, скорее всего, из-за этой ошибки хрома:
https://www.chromium.org/developers/androidwebview/webview-ct-bug
Решение состоит в следующем:
Добавьте файл манифеста
<uses-permission android:name="android.permission.INTERNET" />
Когда вы получаете доступ к веб-контенту, нужно получить разрешение на доступ к Интернету, тогда он будет загружен только.
Попробуйте это
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);