用WebView 装载 HTML 代码
2015-07-19 23:13
363 查看
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 {
}
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()); }
}
相关文章推荐
- [Objective-C] 013_文件系统(File System)
- Swift开发教程--如何自定义TabBarItem的图片显示
- WPF基础学习笔记(一)Dependency Object 和 Dependency Property
- 去除iOS 6程序图标的玻璃质感效果
- Android Image Loader 第三方库对比测试
- Android中Parcelable接口用法
- Android 利用PopupWindow实现分享菜单
- binbinyang---百度地图androidAPI Android SDK v3.5.0------------2.定位功能
- Android 线程的思考 与 Handler
- parseSdkContent failedCould not initialize class android.graphics 的解决方法
- android基础:广播BroadCast简单案例
- WPF 和 windows Form Application的区别
- Android 屏幕适配
- 仪表图的实现--Android
- Spring 中 ApplicationContext 和 BeanFactory 的区别,以及 Spring bean 作用域
- 黑马程序员--Objective-C语言基础知识--构造方法和内存管理
- CREATE_FUNC
- 一个小程序
- Android Studio学习笔记——构建系统
- 在ios中举个简单的protocol例子,关于两个类用协议方式传值。