WebView 初探
介绍
WebView 是一个用于加载网页的控件,相当于嵌入式浏览器。有了它我们就能以 native 和 web 混合的形式开发。对于一些不重要的页面,可以交给前端实现,我们只需在 webview 里加载它,有效减轻了 native 的开发任务。
// 加载页面
String url = "http://www.baidu.com";
webview.load(url);
当然用 webview 接入的页面在交互时,执行的是 html 里的 js 代码,用户体验上不如
native (也就是纯 android 端的实现)。然后就有人想出了用 js 调用 native 的方式,也就是很火的 Hybrid 的概念。
引用一篇博客,这里有关于 Hybrid 的介绍
http://blog.csdn.net/jacin1/article/details/39993935
一个小例子(IDE: AS)
该例子实现了一个自定义 WebView,尝试了如下功能:
1. 加载页面时,控制一个进度条
// 提供了一个接口用于控制进度
interface OnLoadListener{
public void onLoadStart();
public void onLoading(int newProgress);
public void onLoadComplete();
}
2. 提供 js 的接口,让 js 调用 native 的函数。
通过 webview.addJavascriptInterface(Object jsInterface, jsInterfaceName); 来设置 js 接口
// 设置给 webview 的 js 接口
class jsInterface{
public jsInterface(){}
// 提供给 js 调用的方法
public void invokedByJs(){
// tudo ...
}
}
然后在 assets/test.html 里试着调用它。
window.demo.functionInAndroid()
以上,简略的说,详见 Demo,内有注释: