Android加载H5页面 | 您所在的位置:网站首页 › webview加载不出来 › Android加载H5页面 |
WebView加载网页,图片不显示
直接上效果图: 在Android studio中加载URL链接的时候,有些图片可以显示,有些显示不出来; 考虑可以有以下原因: 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);参考文章:引用链接 还有一篇可以参考的:参考 还有一种就是在manifest中添加网络权限一定要记得添加网络权限,添加网络权限,添加网络权限; 如果添加上面的几行代码没用作用,看向这!!! 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); } }附上坤坤的一句话:冲鸭!!! |
CopyRight 2018-2019 实验室设备网 版权所有 |