我在android中实现webview应用程序。当我尝试加载 https网址一两次完成活动时。 Agian尝试加载 https网址,表示网页不可用。请在下面找到我得到的图片。
当我再次点击该网址时,它会显示网站。
我使用以下代码加载网址。
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();
}
});
请任何帮助的人.......
提前致谢
答案 0 :(得分:12)
尝试使用以下属性:
webView = (WebView) findViewById(R.id.webView1);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
答案 1 :(得分:8)
在manifest.xml中添加互联网设置
<uses-permission android:name="android.permission.INTERNET" />
并检查您是否可以在您的设备上访问互联网。
答案 2 :(得分:5)
删除此字符串:
super.onReceivedSslError(view, handler, error);
并且在这种方法中
public boolean shouldOverrideUrlLoading(WebView view, String url) {
转回假
像这样:
return false;
它帮助了我
答案 3 :(得分:3)
你应该删除这个
super.OnReceiveSslError(view,handler,error);
答案 4 :(得分:2)
将此覆盖方法添加到WebViewClient实现中。您需要使用Android SDK 2.2(API级别8)或更高版本进行编译。该方法在2.2版(API级别8)的公共SDK中出现,但我们已经在运行2.1,1.6和1.5的设备上进行了测试,它也可以在这些设备上运行(显然行为一直存在)。
WebView.setWebViewClient(new WebViewClient() {
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
handler.proceed();
}
});
答案 5 :(得分:1)
这里的一种可能性是竞争条件。
您在设置WebViewClient之前加载https://www.facebook.com/,因此如果您从Facebook获得足够快的响应,则可能永远不会调用OnReceivedSslError()的实现。
这可以解释为什么它适用于某些人,而不适用于其他人,并且在重新加载页面时始终有效。
另外,我认为你应该只是从shouldOverrideUrlLoading()返回false,如果你想加载页面而不是试图重新加载页面 - 这可能会导致无限递归/崩溃 - 可能取决于时间。
答案 6 :(得分:0)
2016年12月回答:
如果只在Android 5+的某些设备上发生这种情况,并且仅在某些页面上发生,则很可能是由于这个铬虫:
https://www.chromium.org/developers/androidwebview/webview-ct-bug
解决方案是:
答案 7 :(得分:-3)
添加您的清单文件
<uses-permission android:name="android.permission.INTERNET" />
当您访问网络内容时,需要获得互联网权限,然后才会加载。
答案 8 :(得分:-4)
试试这个
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);