用WebView 装载 HTML 代码

WebView 不仅可以通过 URL 装载网页,也可以直接装载 HTML 代码,WebView 类有两个方法可以装载 HTML 代码,如下:
这里写图片描述

这里写图片描述
loadData() 方法的参数定义如下:
data : HTML代码
mimeType: Mime类型, 一般为 text/html
encoding: HTML代码的编码, 例如: GBK, uft-8

loadDataWithBaseURL() 方法的参数定义如下:
baseUrl: 获得相对路径的根 URL, 如果设为null, 默认值为 about:blank
failUrl: 如果HTML代码装载失败或为 null, WebView 组件会装载这个参数指定的URL.
其他的参数与loadData 方法的参数定义相同

虽然loadData 和 loadDataWithBaseURL 方法都可以装载 HTML 代码,但是loadData 在装载包含中文的 HTML 代码时会有乱码, 而loadDataWithBaseURL方法没有问题

WebView 默认不支持JS, 需要使用.getSettings().setJavaScriptEnabled(boolean flag) 和 setWebChromeClient(WebChromeClient client) 进行设置. 其中 setWebChromeClient() 用来设置 JS 处理器,看一个示例:

这里写图片描述
这里写图片描述
这里写图片描述


import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;

public class Main extends Activity {
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		WebView webView = (WebView) findViewById(R.id.webview);
		String html = "<html>"
				+ "<body>"
				+ "图书封面<br>"
				+ "<table width='200' border='1' >"
				+ "<tr>"
				+ "<td><a onclick='alert(\"Java Web开发速学宝典\")' ><img style='margin:10px' src='http://images.china-pub.com/ebook45001-50000/48015/cover.jpg' width='100'/></a></td>"
				+ "<td><a onclick='alert(\"大象--Thinking in UML\")' ><img style='margin:10px' src='http://images.china-pub.com/ebook125001-130000/129881/zcover.jpg' width='100'/></td>"
				+ "</tr>"
				+ "<tr>"
				+ "<td><img style='margin:10px' src='http://images.china-pub.com/ebook25001-30000/27518/zcover.jpg' width='100'/></td>"
				+ "<td><img  style='margin:10px' src='http://images.china-pub.com/ebook30001-35000/34838/zcover.jpg' width='100'/></td>"
				+ "</tr>" + "</table>" + "</body>" + "</html>";

		webView.loadDataWithBaseURL("图书名", html, "text/html", "utf-8", null);
		webView.getSettings().setJavaScriptEnabled(true);
		webView.setWebChromeClient(new WebChromeClient());
	}
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值