通常开发中,我们都是直接用WebView家在一个url连接,显示其中的内容。
但是当后台返给你的在WebView中加载的数据是这种的格式:
String html = <p>国债和大额存单有很多相似之处,比如都很安全,都保本保息,长期利率差别也不大,那具体来看,国债和大额存单有什么区别?存哪个更好呢?</p><p>总结出国债和大额存单的五大区别:</p><p><strong>一、从安全角度看,国债稍高一点,但差别不大</strong></p><p>我们一直都说国债是国内最安全的理财产品,没有之一,因为它是国家发行的,受国家信用担保。</p><p>但大额存单的安全性也不低,属于存款,受存款保险条例保护,即使银行倒闭了,50万元以内都能受到全额保障。国内银行倒闭的风险太低了,尤其是国有大行和全国性股份制银行。之前你见过几家银行倒闭呢?</p><p>有人说,现在不倒闭,不意味着以后也不会倒闭,万一哪天金融风暴来了也说不准。如果真有这方面的担忧,那你可以选择大银行,或者小银行中的钱每家不超过50万就可以了。</p>
你做的该怎么加载处理不?
遇到这种情况,心里先骂后台一万遍草泥马,然后再考虑处理方案。
这种字符串,其实也是编写好的H5的js代码的一部分,嗯,h5的body的那部分,然后我们还要为其添加头部header,其他的变量等,使其转换成标准的可以让WebView渲染加载的字符串,然后再为其指定mimeType和编码格式enCoding。最后再调用WebView的loadDataWithBaseURL方法进行加载。具体如下:
1、把html字符串转换成可以让WebView渲染加载的字符串:
String standard = "<html> \n" +
"<head> \n" +
"<style type=\"text/css\"> \n" +
"body {font-size:13px;}\n" +
"</style> \n" +
"</head> \n" +
"<body>" +
"<script type='text/javascript'>" +
"window.onload = function(){\n" +
"var $img = document.getElementsByTagName('img');\n" +
"for(var p in $img){\n" +
" $img[p].style.width = '100%%';\n" +
"$img[p].style.height ='auto'\n" +
"}\n" +
"}" +
"</script>" +
html
+ "</body>" +
"</html>"
开发中,将上面的html 字符串变量改成自己的字符串变量即可。
2、为其指定mimeType和编码格式enCoding:
String mimeType = "text/html";
String enCoding = "utf-8";
3、调用WebView的loadDataWithBaseURL方法进行加载:
wvAdvisoryDetail.loadDataWithBaseURL(null, standard, mimeType, enCoding, null);
WebView渲染显示效果如下: