我的应用程序打开一个网页视图来显示
HTML页面,该页面由HTTPS托管,包含一个图像(来自http的图像).在某些设备上,图像不显示,但对于所有其他设备,它的工作正常.
我检查了多个设备,如Nexus,三星s6 / s4,Moto G2等.只有在三星S4 / S6,nexus图像没有显示.但对于所有其他设备,它的工作正常.即使我尝试使用WI-FI,数据载体和多个操作系统版本,但没有运气.
我检查了多个设备,如Nexus,三星s6 / s4,Moto G2等.只有在三星S4 / S6,nexus图像没有显示.但对于所有其他设备,它的工作正常.即使我尝试使用WI-FI,数据载体和多个操作系统版本,但没有运气.
请帮忙解决这个问题.
一些意见:
1)在每个设备上我都得到相同的警告:
[已封锁]“网页网址”页面已通过HTTPS加载,但从“图像来源”显示不安全的内容:此内容也应通过HTTPS加载.
2)同一页面,如果我在网络浏览器打开,所有设备上工作正常.
我的代码
mWebView = (WebView) findViewById(R.id.m_web_view); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); mainUrl = bean.getUrl(); mWebView.loadUrl("javascript:window.location.reload( true )"); mWebView.loadUrl(mainUrl); mWebView.setWebViewClient(new myWebClient()); private class myWebClient extends WebViewClient { @Override public void onPageStarted(WebView view,String url,Bitmap favicon) { //some code } @Override public boolean shouldOverrideUrlLoading(WebView view,String url) { //some code } @Override public void onReceivedSslError(WebView view,SslErrorHandler handler,SslError error) { handler.proceed(); } }
解决方法
默认情况下,启用Lollipop将禁用在WebView上使用HTTP和HTTPS的混合内容.有可能是不是在使用棒棒糖的设备上工作?
如果是这样,您可以使用以下方式更改Lollipop上的默认WebView设置:
如果是这样,您可以使用以下方式更改Lollipop上的默认WebView设置:
webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
文档资料:
http://developer.android.com/reference/android/webkit/WebSettings.html#setMixedContentMode(int)