Android加载H5页面 您所在的位置:网站首页 webview加载不出来 Android加载H5页面

Android加载H5页面

2023-09-25 06:59| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有