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,內有註釋: