webview加载HTML很方便
我们常见的加载方式有这几种
类型1:
用webview直接加载一个h5页面 也就是webview.loadUrl(url);//此处省略了webview的settings等等的设置
类型2:(包含了2中情况)
用webview加载一段html文本,也就是自己需要拼接一下字符串然后加载的情况.
比如说后台给前台返回了一段html代码(这段代码可能没有包含head和html的声明)
String content ="后台返回前台数据";
String top = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + " <style>\n" + " img{ max-width: 90%; text-indent: 0em !important; }\n" + " p{ width:100% }\n" + " iframe{ width:100%;float:left }\n" + " </style>\n" + "</head>\n" + "<body>"; String bottom = "</body>\n" + "</html>";
String html=top+content+bottom;
webView.loadData(content, "text/html; charset=UTF-8", "null");//这样就可以完成数据的显示和加载了
但是我今天遇到的一个神坑就是后台返回到前台的html字符串中包含了<img src="../../img/....png"> 对于这样的img标签在浏览器可能可以正常加载,但是到了手机就加载不出来了
此时要采取的方式是采用webview的另外一个加载html的方法
webView.loadDataWithBaseURL("http://xxxx.com", content, "text/html", "utf-8",null);
我试了一下这个问题在androidx上也有 所以记录一下,希望能帮助遇到坑的时候,大家能少走弯路.