Android WebView 加载网页
在开发Android平台的互联网应用时,经常会使用到WebView,好处主要有两个,一是可以更改要展现的内容(包括样式),二是可以实现部分功能的跨平台,下面我介绍几种常用写法和区别,如下:
1.加载html代码方式有loadData()和loadDataWithBaseURL():
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 。
loadDataWithBaseURL代码例子如下写法:
StringBuilder data = new StringBuilder(""); int size = paperList.size(); for(int i = 0;i < size;i++){ if(!StringUtils.isEmpty(paperList.get(i).getFilePath())){ data.append("").append(" ").append("
"); } data.append("").append(""+paperList.get(i).getContent()+"").append("
"); } data.append("");preWebView.loadDataWithBaseURL("", data, "text/html", "UTF-8","");
/** * 显示本地图片和文字混合的Html内容 */ private void localHtmlImage() { try { String data = "在模拟器 2.1 上测试,这是file:///android_asset/igg.jpg/"/>APK里的图片"; // SDK1.5本地文件处理(不能显示图片) //MyWebView.loadData(URLEncoder.encode(data, encoding), mimeType, encoding); // SDK1.6及以后版本 //MyWebView.loadData(data, mimeType, encoding); // 本地文件处理(能显示图片) MyWebView.loadDataWithBaseURL(null, data, mimeType, encoding, null); } catch (Exception ex) { ex.printStackTrace(); } }
2.加载本地html文件代码方式有loadUrl():
/** * 显示本地图片文件 */ private void localImage() { try { // 本地文件处理 String str = "file:///android_asset/icon.png"; MyWebView.loadUrl(str); } catch (Exception ex) { ex.printStackTrace(); } } /** * 显示本地网页文件 */ private void localHtml() { try { // 本地文件处理(如果文件名中有空格需要用+来替代) MyWebView.loadUrl("file:///android_asset/test.html"); } catch (Exception ex) { ex.printStackTrace(); } }
3.加载在线网页html代码方式有loadUrl():
/** * 直接网页显示 */ private void webHtml() { try { MyWebView.loadUrl("http://www.google.com"); } catch (Exception ex) { ex.printStackTrace(); } } /** * 直接网络图片显示 */ private void webImage() { try { MyWebView .loadUrl("http://www.google.com.hk/intl/zh-CN/images/logo_cn.gif"); } catch (Exception ex) { ex.printStackTrace(); } }
报名学习加微信/QQ 1602007,关注《东方联盟网》微信公众号
>更多相关文章
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 03-08消息称微软开发内部AI推理模型,或将成为Op
- 03-08美国法院驳回马斯克请求,未阻止OpenAI转型
- 03-08饿了么成立即时配送算法专家委员会 持续全局
- 03-08长安汽车:预计今年底长安飞行汽车将完成试
- 03-08谷歌推出虚拟试穿、AR美妆新功能
相关文章
24小时热门资讯
热门推荐
最新资讯
操作系统
黑客防御