android load xhtml page

本文介绍了解决Android WebView加载本地webpage时遇到的问题,包括因HTML与XHTML之间的差异导致的加载失败及JS注入失效的情况,并给出了具体的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

refs:

http://stackoverflow.com/questions/7604436/xmlparseentityref-no-name-warnings-while-loading-xml-into-a-php-file

http://boyadn.blog.163.com/blog/static/74230736201012292739317/


1)case

原来android上可以正常加载的本地webpage,忽然不能加载了,发现只是js的写发有些差异。

原来<script>xxx</script> 现在<script/>,按理2者都是合法的。

原来加载方法 webview.loadDataWithBaseURL("webpagePath_xx",htmlString,"text/html","utf-8",null);

但实际加载文件格式未xhtml,又称html5,格式要求更严格。

solution:

更改加载方法 webview.loadDataWithBaseURL("webpagePath_xx",htmlString,"application/xhtml+xml","utf-8",null);

修改后OK。


原来的web view的mime type 其实不对,但由于web page格式是严格的符合2者(html/xhtml)要求,所以也可正常加载。

或者web page的编写中写成兼容模式,应该也是可以的(未尝试)。


2)case:由于修改了mine type,导致原来注入的一段js 实效。

原来的js是直接append到html后面的(这样也可以work,可见html是很宽容的),在xhtml中是不允许的,所以插入中body文中;

另外js中的 &&,>,<都要转义了。不然提示  “xmlParseEntiyRef”错误,参见refs。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值