android中webView 加载数据

本文介绍了Android中WebView加载数据的方法,包括loadUrl()、loadData()和loadDataWithBaseURL()。重点讲解了loadData()与loadDataWithBaseURL()的区别,如loadDataWithBaseURL()允许指定资源的相对根路径和历史Url。在使用loadData()时,由于特殊字符限制,需要对HTML内容进行UrlEncoder编码,但可能影响显示效果。推荐使用loadDataWithBaseURL()以实现更完美的内容解析。
摘要由CSDN通过智能技术生成

可以使用loadUrl()加载一个Url地址,也可以使用loadData()或loadDataWithBaseURL()加载一段HTML代码片段。loadUrl()的使用大家应该都没有什么问题,但是loadData()和loadDataWithBaseURL()在使用上的差异可能有些人还不太清楚。

       首先,从方法的定义来看:

public void   loadData   (String data, String mimeType, String encoding)  public void   loadDataWithBaseURL   (String baseUrl, String data, String mimeType, String encoding, String historyUrl) 

       loadDataWithBaseURL()比loadData()多两个参数,可以指定HTML代码片段中相关资源的相对根路径,也可以指定历史Url。两个方法的其余三个参数相同。

其次,两个方法加载的HTML代码片段有些不同,loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字符,这就为我们内嵌css等制造了些许麻烦,因为css中经常用'#', '%'等字符,需要如何处理呢?我们需要用UrlEncoder编码为%23, %25, %27, %3f

1、webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html",  "utf-8");这样一些背景效果什么的都不怎么好看了。不推荐。

2     webView.loadDataWithBaseURL(null,data, "text/html",  "utf-8", null);这样就会完美解析了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值