客户端相关知识学习(五)之什么是webView
webview是什么?作用是什么?和瀏覽器有什么關(guān)系?
Android系統(tǒng)中內(nèi)置了一款高性能 webkit 內(nèi)核瀏覽器,在 SDK 中封裝為一個(gè)叫做 WebView 組件也就是說WebView是一個(gè)基于webkit引擎、可以解析DOM 元素展現(xiàn)web頁面的控件,它和瀏覽器展示頁面的原理是相同的所以可以把它當(dāng)做瀏覽
器看待
WebView是用于展示網(wǎng)絡(luò)請求后的結(jié)果,也就是將url網(wǎng)絡(luò)請求的結(jié)果展示在里面。
Android的Webview在低版本和高版本采用了不同的webkit版本內(nèi)核,Android4.4后直接使用了Chrome。
webview主要用于什么地方?或者說什么需求下會(huì)使用到webview?
個(gè)人理解,電腦上展示html頁面,通過瀏覽器打開頁面即可瀏覽,而手機(jī)系統(tǒng)層面,如果沒有webview支持,是無法展示html頁面,所以webview的作用即用于手機(jī)系統(tǒng)來展示html界面的
所以它主要在需要在手機(jī)系統(tǒng)上加載html文件時(shí)被需要
WebView的作用
-
顯示和渲染W(wǎng)eb頁面;
-
直接使用html文件(網(wǎng)絡(luò)上或本地assets中)作布局;
-
可和JavaScript交互調(diào)用。
一個(gè)原生應(yīng)用調(diào)用html頁面的過程?
-
原生應(yīng)用加載html頁面(加載頁面的方式可能有多種,比如加載本地寫好的html文件,或者放置在服務(wù)器的文件)
-
加載完成,展示就是通過webview來渲染展示的,如果系統(tǒng)沒有webview,則是無法渲染展示html的
-
1、2步其實(shí)一個(gè)原生應(yīng)用調(diào)用html頁面過程已經(jīng)完成了,那么頁面不光展示,有時(shí)候可能還需要交互,這里的話就需要寫一些方法了,比如html界面的按鈕需要調(diào)用系統(tǒng)原生的東西(比如:拍照,系統(tǒng)的文件,相冊之類的)。
??原生端就負(fù)責(zé)維護(hù)html調(diào)用的接口,然后按照需要返回(原生端充當(dāng)一個(gè)server的角色,html充當(dāng)一個(gè)client角色)
使用webview的好處?
原生APP是將頁面的布局設(shè)計(jì),以及業(yè)務(wù)代碼打包然后用戶下載安裝使用,而webview是通過加載html文件來進(jìn)行頁面的展示,當(dāng)需要更新頁面布局的或者業(yè)務(wù)邏輯變更時(shí),如果是原生的APP就需要修改前端內(nèi)容,升級打包,重新發(fā)布才可
以使用最新的。而通過webview方式的頁面則只需要修改html代碼或者js文件(如果是從服務(wù)器端獲取,只要新的文件部署完成),用戶重新刷新就可以使用更新后的,無需通過下載安裝的方式完成升級
安卓系統(tǒng)內(nèi)置瀏覽器,自帶瀏覽器?
內(nèi)置瀏覽器和自帶瀏覽器是一個(gè)概念?
國內(nèi)手機(jī)的自帶瀏覽器不是chrome,主要是版權(quán)的原因,自帶的瀏覽器都是手機(jī)廠商基于國內(nèi)主流的幾大瀏覽器自己定制,然后發(fā)布在自己手機(jī)系統(tǒng)版本中.不過國內(nèi)幾大瀏覽器廠商如QQ瀏覽器,UC瀏覽器、都是基于webkit引擎的
iphone的自帶瀏覽器是Safari,Safari瀏覽器的內(nèi)核是webkit
APP webview展示的頁面和通過手機(jī)瀏覽器打開的頁面?
不管是ios還是安卓,自帶瀏覽器底層都是基于webkit的,然后各自系統(tǒng)中均帶有webview控件,也是基于webkit引擎,所以不管通過APP調(diào)用webview展示html頁面還是通過在瀏覽器打開html頁面,效果是一樣的。
Android中的webview函數(shù)?
| WebView.loadUrl("http://www.ltplayer.com");// 加載url,也可以執(zhí)行js函數(shù) WebView.setWebViewClient(new SafeWebViewClient());// 設(shè)置 WebViewClient WebView.setWebChromeClient(new SafeWebChromeClient());// 設(shè)置 WebChromeClient WebView.onResume(); WebView.resumeTimers(); WebView.onPause(); WebView.pauseTimers(); WebView.stopLoading();// 停止當(dāng)前加載 WebView.clearMatches(); WebView.canGoBack(); WebView.clearSslPreferences(); WebView.clearCache(true);方也會(huì)使用到。該方法接受一個(gè)參數(shù),從命名即可看出作用。若設(shè)為false,則只清空內(nèi)存里的資源緩存,而不清空磁盤里的。 WebView.loadUrl("about:blank"); WebView.removeAllViews();// WebView.destroy();// 生命周期銷毀 |
參考?
WebView之基本使用
app中的webview通識(shí)篇(上)
webview的簡單介紹
app中的webview通識(shí)篇(上)
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/kunmomo/p/11556146.html
總結(jié)
以上是生活随笔為你收集整理的客户端相关知识学习(五)之什么是webView的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 客户端相关知识学习(四)之H5页面如何嵌
- 下一篇: 无障碍开发(一)之初认识