webview基于WebKit引擎
加載本地 和網(wǎng)絡(luò)網(wǎng)頁 loadUrl
能調(diào)用js 函數(shù)舶衬,js也可以調(diào)用java對象方法
三個輔助類 WebSettings耿导、WebViewClient、WebChromeClient
可以設(shè)置緩存回懦,緩存方式有頁面緩存和數(shù)據(jù)緩存气笙。
存在內(nèi)存泄漏問題。解決方案之一怯晕,通過new方式創(chuàng)建添加到布局容器中潜圃,在onDestroy移除和銷毀webview.
1. 什么是WebView?
WebView是一個使用WebKit引擎的瀏覽器組件,用來加載網(wǎng)頁舟茶。
2. WebView中加載網(wǎng)頁的兩種方式?
loadUrl(url) 通過url地址加載互聯(lián)網(wǎng)或本地網(wǎng)頁
如:loadUrl("http://www.baidu.com");
loadUrl("file:///android_asset/html/index.html");
loadData(data,type,encoding) 直接加載網(wǎng)頁內(nèi)容谭期,容易亂碼,一般用loadDataWithBaseURL代替
3. WebView的三個輔助類是什么?
WebSettings吧凉、WebViewClient隧出、WebChromeClient
4. WebSettings的作用是什么?
設(shè)置WebView的一些屬性、狀態(tài)等,例如允許使用JavaScript阀捅,允許使用緩存胀瞪,允許使用內(nèi)置的縮放組件
setJavaScriptEnabled(true); 設(shè)置支持js
5. WebViewClient的作用是什么?
主要幫助WebView處理各種通知、請求事件(例如饲鄙,點(diǎn)擊鏈接時候如何顯示界面凄诞,頁面開始加載涵紊,加載完畢之后有何動作等)
shouldOverrideUrlLoading() onPageStarted() onPageFinished()
6. WebChromeClient的作用是什么?
輔助WebView處理Javascript的對話框幔摸、網(wǎng)站圖標(biāo)摸柄、網(wǎng)站Title、加載進(jìn)度等
核心方法有onJsAlert() onJsConfirm() onJsPrompt() onProgressChanged() onReceivedIcon()
onReceivedTitle()
7. WebViewClient中shouldOverrideUrlLoading方法作用
shouldOverrideUrlLoading方法控制超連接是否在當(dāng)前WebView中打開既忆。
8. android中如何調(diào)用js中的方法驱负?
loadUrl("javascript:test()");
9. 頁面js中調(diào)用android客戶端的方法實(shí)現(xiàn)步驟?
1,添加javascript支持( webSettings.setJavaScriptEnabled(true);)
2,暴露一個java對象給js患雇,使得js可以直接調(diào)用該實(shí)例中的公有方法跃脊,
(webview.addJavascriptInterface(object,"name");)
3,加載頁面( webview.loadUrl(url);}
4,頁面可以通過別名使用(window.name.方法名)
10.關(guān)于WebView緩存 http://blog.csdn.net/t12x3456/article/details/13745553
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0417/2736.html
Android WebView緩存可以分為頁面緩存和數(shù)據(jù)緩存
頁面緩存是指加載一個網(wǎng)頁時html、JS苛吱、CSS等頁面或者資源數(shù)據(jù)酪术。
數(shù)據(jù)緩存分別為兩種:AppCache和DOM Storage(Web Storage)。
AppCache也是我們的H5緩存翠储,我們可以設(shè)置緩存的目錄
Dom Storage具有Session Storage和Local Storage兩種绘雁,前者是會話級別的存儲,頁面關(guān)閉之后就消失了援所,后者是本地化存儲庐舟。
11.webview內(nèi)存泄漏
http://lipeng1667.github.io/2016/08/06/memory-optimisation-for-webview-in-android/
侵刪