webview是什么?作用是什么?和瀏覽器有什么關系?
Android系統中內置了一款高性能 webkit 內核瀏覽器,在 SDK 中封裝為一個叫做 WebView 組件也就是說WebView是一個基於webkit引擎、可以解析DOM 元素展現web頁面的控件,它和瀏覽器展示頁面的原理是相同的所以可以把它當做瀏覽
器看待
WebView是用於展示網絡請求后的結果,也就是將url網絡請求的結果展示在里面。
Android的Webview在低版本和高版本采用了不同的webkit版本內核,Android4.4后直接使用了Chrome。
webview主要用於什么地方?或者說什么需求下會使用到webview?
個人理解,電腦上展示html頁面,通過瀏覽器打開頁面即可瀏覽,而手機系統層面,如果沒有webview支持,是無法展示html頁面,所以webview的作用即用於手機系統來展示html界面的
所以它主要在需要在手機系統上加載html文件時被需要
WebView的作用
-
顯示和渲染Web頁面;
-
直接使用html文件(網絡上或本地assets中)作布局;
-
可和JavaScript交互調用。
一個原生應用調用html頁面的過程?
-
原生應用加載html頁面(加載頁面的方式可能有多種,比如加載本地寫好的html文件,或者放置在服務器的文件)
-
加載完成,展示就是通過webview來渲染展示的,如果系統沒有webview,則是無法渲染展示html的
-
1、2步其實一個原生應用調用html頁面過程已經完成了,那么頁面不光展示,有時候可能還需要交互,這里的話就需要寫一些方法了,比如html界面的按鈕需要調用系統原生的東西(比如:拍照,系統的文件,相冊之類的)。
原生端就負責維護html調用的接口,然后按照需要返回(原生端充當一個server的角色,html充當一個client角色)
使用webview的好處?
原生APP是將頁面的布局設計,以及業務代碼打包然后用戶下載安裝使用,而webview是通過加載html文件來進行頁面的展示,當需要更新頁面布局的或者業務邏輯變更時,如果是原生的APP就需要修改前端內容,升級打包,重新發布才可
以使用最新的。而通過webview方式的頁面則只需要修改html代碼或者js文件(如果是從服務器端獲取,只要新的文件部署完成),用戶重新刷新就可以使用更新后的,無需通過下載安裝的方式完成升級
安卓系統內置瀏覽器,自帶瀏覽器?
內置瀏覽器和自帶瀏覽器是一個概念?
國內手機的自帶瀏覽器不是chrome,主要是版權的原因,自帶的瀏覽器都是手機廠商基於國內主流的幾大瀏覽器自己定制,然后發布在自己手機系統版本中.不過國內幾大瀏覽器廠商如QQ瀏覽器,UC瀏覽器、都是基於webkit引擎的
iphone的自帶瀏覽器是Safari,Safari瀏覽器的內核是webkit
APP webview展示的頁面和通過手機瀏覽器打開的頁面?
不管是ios還是安卓,自帶瀏覽器底層都是基於webkit的,然后各自系統中均帶有webview控件,也是基於webkit引擎,所以不管通過APP調用webview展示html頁面還是通過在瀏覽器打開html頁面,效果是一樣的。
Android中的webview函數
WebView.loadUrl("http://www.ltplayer.com");// 加載url,也可以執行js函數 WebView.setWebViewClient(new SafeWebViewClient());// 設置 WebViewClient WebView.setWebChromeClient(new SafeWebChromeClient());// 設置 WebChromeClient WebView.onResume(); WebView.resumeTimers(); WebView.onPause(); WebView.pauseTimers(); WebView.stopLoading();// 停止當前加載 WebView.clearMatches(); WebView.canGoBack(); WebView.clearSslPreferences(); WebView.clearCache(true);方也會使用到。該方法接受一個參數,從命名即可看出作用。若設為false,則只清空內存里的資源緩存,而不清空磁盤里的。 WebView.loadUrl("about:blank"); WebView.removeAllViews();// WebView.destroy();// 生命周期銷毀 |
參考