简介
Android提供了WebView
组件(相关类为android.webkit.WebView、android.webkit.WebViewClient)。表面上来看,这个组件与普通的ImageView差不多,但实际上,这个组件的功能要强大得多,WebView本身就是一个浏览器实现!它的内核基于WebKit
引擎(怪不得包名是webkit)。如果我们队WebView进行一些美化,包装,可以非常轻松地开发出自己的浏览器。
WebView的API
WebView提供了大量方法来执行浏览器操作,如:
void goBack() //后退
void goForward() //前进
void loadUrl(String url) //加载指定url对应的网页
boolean zoomIn()
boolean zoomOut() //放大/缩小网页
实例
实例参考微信抢红包插件
界面如图:
基本用法
直接在Activity中定义一个WebView
WebView webView = new WebView();
webView.loadData("balala", "text/html", "utf-8");
或
webView.loadDataWithBaseURL(null, "balabla", "text/html", "utf-8", null);
即可在Activity中显示解析过的html。
使用WebView中的JavaScript调用Android平台的方法
很多时候,WebView加载的页面上是带JavaScript脚本的。为了让WebView中的JavaScript脚本调用Android方法,WebView提供了一个配套的WebSettings工具类,该工具类提供了大量方法来管理WebView的选项设置。
在Activity中定义一个WebSettings。
//先获取WebView的设置对象
WebSettings webSettings = webView.getSettings();
//开启JavaScript调用
webSettings.setJavaScriptEnabled(true);
//将MyObject对象暴露给JavaScript脚本:这样test.html页面中的JavaScript可以通过`myObj`来调用MyObject中的方法。
如MyObject中有:
public void showToast(String name){
Toast.makeText(...).show();
}
然后在text.html页面中即可
<input type ="button" value = "打招呼" onclick="myObj.showToast('孙悟空')">
来调用Android中的MyObject的showToast()方法了