Android 加载https请求的网页的时候 打不开网页,我们的解决办法是:
在webView.setWebViewClient中重写
//因为访问网址是Https,必须设置,否则页面不显示 @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // handler.cancel();// Android默认的处理方式 handler.proceed();// 接受所有网站的证书 // handleMessage(Message msg);// 进行其他处理 } @Override public void onReceivedClientCertRequest(WebView view, ClientCertRequest request) { super.onReceivedClientCertRequest(view, request); }
如果涉及到与JS交互,重写setWebChromeClient中的onJsAlert方法:
//因为访问网址是Https,必须设置否则不能与JS交互 @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return super.onJsAlert(view, url, message, result); }
如果我们加载网页时用Https请求,而网页内的图片等内容是用http加载,我们手机肯定是显示不出来图片的,这是因为webView不支持混合请求。这段代码写在设置webView的时候
//因为webView不支持网页访问时https,里面类容是http,所以需要设置支持访问混搭。 WebSettings wetSettings = webView_modeldetail.getSettings(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { wetSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); }这样,我们就能访问到用https请求的网页,又能加载里面用http请求的网址内容