WebView图像未显示HTTPS

Aji*_*rma 16 android android-webview

我的应用程序打开一个Web视图来显示HTML页面,该页面由HTTPS托管,其中包含一个图像(来自http的图像).在某些设备上,图像没有显示,但对于所有其他设备,它的工作正常.我检查了Nexus,三星s6/s4,Moto G2等多种设备.仅在三星S4/S6上,nexus图像未显示.但对于所有其他设备,它的工作正常.即使我尝试使用WI-FI,数据载体和多个操作系统版本,但没有运气.

请帮忙解决这个问题.

一些观察: -

1)在每台设备上我都收到相同的警告: - [已阻止]' page url ' 页面是通过HTTPS加载的,但是显示来自' image source '的不安全内容:此内容也应该通过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();
    }


}
Run Code Online (Sandbox Code Playgroud)

Pol*_*zio 60

默认情况下,启动Lollipop会禁用在WebView上使用HTTP和HTTPS的混合内容.有可能在Lollipop设备上不起作用吗?如果是这种情况,您可以使用以下命令更改Lollipop上的默认WebView设置:

webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
Run Code Online (Sandbox Code Playgroud)

这里的文档:http: //developer.android.com/reference/android/webkit/WebSettings.html#setMixedContentMode(int)

  • @AjitSharma对于来自Google的任何人来说,更好的选择可能是使用`WebSettings .MIXED_CONTENT_COMPATIBILITY_MODE`,因为这样可以使用不太可能用于攻击用户的图像,视频和其他内容. (2认同)