欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android webview加载https网页时图片无法加载显示问题

程序员文章站 2022-06-04 15:10:31
...

webview加载https网页,在android 5.0以上,如果图片内容是http的,那么是无法加载出来的

 

webview 从Lollipop(5.0)开始 webview默认不允许混合模式,https当中不能加载http资源,如果要加载,需单独设置开启

 settings.setBlockNetworkImage(false);
// 允许从任何来源加载内容,即使起源是不安全的;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            settings.setMixedContentMode(android.webkit.WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }

https://front.xiyilang.cc/laundry_test/wx/SlyderAdventuresnew.jsp?sid=a3ea58c419524e649893fbef3a9441cd&ctc=3301

网页不能加载出来图片,某些显示

Android webview加载https网页时图片无法加载显示问题

图片的连接是js从后台请求过来,但是不显示出来。是因为,webview在加载页面的时候,图片还没有渲染上去,或者图片的连接还没有从后台加载完毕。

解决方式:

1.在加载钱先阻塞图片加载:

setting.setBlockNetworkImage(true);

2. 判断如果webview已经加载完毕sc的脚本后,在加载图片,解除阻塞

webView.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageFinished(WebView view, String url) {
        settings.setBlockNetworkImage(false);
        //判断webview是否加载了,图片资源
        if (!settings.getLoadsImagesAutomatically()) {
            //设置wenView加载图片资源
            settings.setLoadsImagesAutomatically(true);
        }
        super.onPageFinished(view,url);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
});