Android加载H5页面——webView加载网页时图片不显示

WebView加载网页,图片不显示

直接上效果图:
在这里插入图片描述
在Android studio中加载URL链接的时候,有些图片可以显示,有些显示不出来;

考虑可以有以下原因:

  1. android webview 从Lollipop(5.0)开始webview默认不允许混合模式,https当中不能加载http资源,而开发的时候可能使用的是https的链接,但是链接中的图片可能是http的,所以需要设置开启。
    解决方法:在webview中加入如下代码
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
        mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
mWebView.getSettings().setBlockNetworkImage(false);

参考文章:引用链接

还有一篇可以参考的:参考

  1. 还有一种就是在manifest中添加网络权限

一定要记得添加网络权限,添加网络权限,添加网络权限;

<uses-permission android:name="android.permission.INTERNET"/>

如果添加上面的几行代码没用作用,看向这!!!

 if (Build.VERSION.SDK_INT > 21) {
            webview.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setBlockNetworkImage(false);
        webview.setHorizontalScrollBarEnabled(false);
        webview.getSettings().setLoadWithOverviewMode(true);
        webview.loadUrl("https://www.baidu.com/");//显示远程网页

把这几行添加完一般就可以解决图片不加载的情况了;

运行效果如下:
在这里插入图片描述

补充:

1、思考一:
一般Android studio用webview加载网址的时候;点击部分页面链接;会直接用手机自带的网页打开;而不是直接在应用里进行加载;

解决方法:这时我们就应该对链接拦截,直接在应用内部进行加载,而不是用手机外部进行加载。

代码如下:
webview.setWebViewClient(new WebViewClient() {//拦截不使用浏览器拦截
            @Override
            public void onPageFinished(WebView view, String url) {
            }
        });

2、思考二:

返回/退出逻辑:

一定要添加退出的逻辑,在webview里点击进去后,有上一级的时候就可以进行返回,如果没有上一级时,则app不退出。下面代码 exit();方法中

 @Override//设置回退
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            webview.goBack(); //goBack()表示返回WebView的上一页面
            return true;
        }else {
            exit();
        }
        return false;
    }

    private long exitTime = 0;
    public void exit() {
        if ((System.currentTimeMillis() - exitTime) > 2000) {
            Toast.makeText(getApplicationContext(), "再按一次,退出程序",
                    Toast.LENGTH_SHORT).show();
            exitTime = System.currentTimeMillis();
        } else {
            finish();
            System.exit(0);
        }
    }

附上坤坤的一句话:冲鸭!!!


版权声明:本文为qq_43983650原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。