WebView加载数据的方式有两种:

1. webView.loadUrl(data);//加载url
2. webView.loadDataWithBaseURL(null,data, "text/html" , "utf-8", null);//加载html数据

可以使用来加载富文本内容:

webView.loadDataWithBaseURL(null,data, "text/html" , "utf-8", null);

为了使WebView在手机上能更好的展示富文本内容,推荐如下的WebSetting:

WebSettings settings = webView.getSettings();// 设置WebView支持JavaScriptsettings.setJavaScriptEnabled(true);//支持自动适配settings.setUseWideViewPort(true);settings.setLoadWithOverviewMode(true);settings.setSupportZoom(true);  //支持放大缩小settings.setBuiltInZoomControls(true); //显示缩放按钮settings.setBlockNetworkImage(true);// 把图片加载放在最后来加载渲染settings.setAllowFileAccess(true); // 允许访问文件settings.setSaveFormData(true);settings.setGeolocationEnabled(true);settings.setDomStorageEnabled(true);settings.setJavaScriptCanOpenWindowsAutomatically(true);/// 支持通过JS打开新窗口settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//设置不让其跳转浏览器webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {return false;}});// 添加客户端支持webView.setWebChromeClient(new WebChromeClient());// mWebView.loadUrl(TEXTURL);//不加这个图片显示不出来if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);}webView.getSettings().setBlockNetworkImage(false);//允许cookie 不然有的网站无法登陆CookieManager mCookieManager = CookieManager.getInstance();mCookieManager.setAcceptCookie(true);mCookieManager.setAcceptThirdPartyCookies(webView, true);webView.loadUrl(URL);

补充:

当我们使用WebView加载富文本网页文件时,可能存在某些机型上展示内容乱码的问题。

解决方案:

1.首先设置html头文件为 utf-8,示例代码如下:

 <head><title>这是标题</title><meta name="content-type" content="text/html; charset=utf-8"><meta http-equlv="Content-Type" content="text/html;charset=utf-8">
</head>

2. 其次保证webView设置的编码与html设置编码一致:

webview.getSettings().setDefaultTextEncodingName("utf-8"); 

3.修改富文本样式适配屏幕

html示例代码:

<html><head><meta name="viewport" content="width=device-width, initial-scale=1"><style>img{max-width: 100%; width:100%; height:auto;}*{margin:0px;}</style></head><body><p style="text-align: left;"><img src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1383902695,1129447956&fm=26&gp=0.jpg"title="1541054054758015328.jpg" alt="1.jpg" /><img src="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2353449440,2528668120&fm=26&gp=0.jpg"title="1541054057414099008.jpg" alt="2.jpg" /><img src="https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3446458559,1680525880&fm=26&gp=0.jpg"title="1541054060899024343.jpg" alt="3.jpg" /></p></body>
</html>

将代码结合富文本进行动态修改富文本样式:

private String getHtmlData(String bodyHTML) {String head = "<head>"+ "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> "+ "<style>img{max-width: 100%; width:100%; height:auto;}*{margin:0px;}</style>"+ "</head>";return "<html>" + head + "<body>" + bodyHTML + "</body></html>";}

显示如下:

4.设置取消四周空白

public static String getNewContent(String htmltext) {Document doc = Jsoup.parse(htmltext);Elements head = doc.getElementsByTag("head");head.get(0).html("<style>*,body,html,div,p,img{border:0;margin:0;padding:0;} </style>");
//        Elements elements = doc.getElementsByTag("img");
//        for (Element element : elements) {
//            element.attr("width", "100%").attr("height", "auto");
//        }return doc.toString();}

Android WebView 加载富文本内容相关推荐

  1. Android WebView加载html文本时,图片太大不能适配屏幕

    遇到这么长一段html文本,图片大小不一,调webView也没什么效果,可以试试Jsoup String htmltext2= "<p>\r\n\t\"英美剧鲜肉系列\ ...

  2. ios 中webView加载html文本图片显示不全

    在iOS开发过程中,用webView显示富文本内容是很常见的需求,加载富文本时通常还要根据webView的高度动态计算cell的高度(例如我们要在tableView或者collectionView的某 ...

  3. android 双 webview,Android webview加载页面

    释放双眼,带上耳机,听听看~! Android webview加载页面 private WebView webView; public void init() { webView = (WebView ...

  4. android webView加载网络视频

    之前,我写过webView加载本地网页的博客,今天,就写写webView加载网络视频的内容. 一.加载网页 1.WebView用来显示网页,使用必须时刻注意我们需要添加网络权限 <uses-pe ...

  5. android WebView加载网页白屏问题优化处理

    android WebView加载网页白屏问题优化处理 问题描述: 使用webview加载Web界面时,会出现界面白屏的情况.http下通常问题不大,通常https白屏的可能性很大,而且通常没有任何报 ...

  6. UITextView 加载富文本(带图文)

    1.前言 iOS 10.0 Xcode 13.3.1 SwiftRichString 4.0.0 本来我们UI制定的图上面只是文字,但是由于后台输入框能添加图片,我们原定只加载文本,变成了富文本,样式 ...

  7. android webview 自适应屏幕宽度,Android webview加载html自适应屏幕

    最近又写了一篇文章  Android webview加载html代码 上下左右有白边问题 可以参考一下 webView.getSettings().setJavaScriptEnabled(true) ...

  8. android webview 太大,Android应用开发之Android WebView加载图片显示过大的处理教程(代码教程)...

    本文将带你了解Android应用开发Android  WebView加载图片显示过大的处理教程(代码教程),希望本文对大家学Android有所帮助. Webview加载图片时,经常会遇到图片显示不符合 ...

  9. Android WebView 加载https网页白屏,空白解决方案

    最近在做一个H5相关的需求,使用WebView加载第三方提供的https网页时显示白屏.但是调试打开Baidu和B站的https网址时就能正常打开.被这个问题困扰了半天. 合作方说是android手机 ...

最新文章

  1. Android PendingIntent的使用
  2. 新数据革命:开源图形化数据引擎Hawk5发布
  3. python爬虫实例1:获取一个网页的列表数据
  4. 勒索病毒自救在线工具
  5. 逆向分析CrackMe系列——CrackMe003
  6. 由摊余成本法谈到债券估值
  7. leetcode寻找重复数
  8. 或有事项会计处理研究 ——以广西上市公司为例
  9. Mono.Cecil 修改目标.NET的IL代码保存时报异常的处理。
  10. 货币供应量M1M2与上证综合指数之间的相关性图示
  11. 计算机重装系统的方法,电脑怎么刷机重装系统 电脑刷机重装系统的方法
  12. 微软学术搜索的新功能设想:用户账户系统——史经浩
  13. 多伦多大学计算机科学选课,多伦多大学选课攻略 帮你彻底摆脱选课恐惧症!(内含福利)...
  14. Qt写一个文档复制粘贴助手app
  15. 洛谷P1088.火星人【模拟/搜索/康托展开】
  16. CSDN博客新手使用方案
  17. python初体验-布尔类型转换
  18. mycat分库分表与读写分离
  19. 银行主要业务--资产业务第一种:贷款业务
  20. 用python批量获取微信头像

热门文章

  1. 【今日干货】分享个微信解绑手机号的方法
  2. xhr返回值_数据交互 http请求 xhr
  3. 前端必备技能之----节流
  4. 又谈中国的一些文字游戏
  5. 2003服务器系统能上网吗,windows server 2003上网飞速的秘诀
  6. 计算机毕业论文java毕业设计选题基于javaweb的停车场收费管理系统[包运行成功]
  7. TST5926E无线环境激励实验模态测试分析系统
  8. Vant使用方法(vue2版本)
  9. 您用Apple One可以省多少钱?
  10. Java设计模式作业-责任链模式