WebView這個(gè)控件在android中很常見藐窄,用于展示網(wǎng)絡(luò)頁面病涨,基本上項(xiàng)目中會(huì)在注冊(cè)協(xié)議啰扛,關(guān)于我們氓鄙,一些說明的頁面用到馆揉,由后臺(tái)用富文本框編輯之后返回給前端一個(gè)url鏈接進(jìn)行展示。下面幾句代碼搞定抖拦。
對(duì)了AndroidManifest.xml中必須使用許可 "android.permission.INTERNET", 否則會(huì)出Web page not available錯(cuò)誤升酣。
在這里說一下setJavaScriptEnable()這個(gè)方法是為了訪問頁面中的JavaScript,一旦使能之后态罪,你也可以自己創(chuàng)建接口在你的應(yīng)用和JavaScript代碼間進(jìn)行交互噩茄。如果沒有調(diào)用這個(gè)方法可能會(huì)顯示空白頁面或者web頁面部分元素未顯示。
webview的狀態(tài)方法
WebView的狀態(tài)方法跟Activity類似
這些方法我只用到過destroy复颈,場(chǎng)景是當(dāng)頁面中存在媒體播放器和音樂播放器時(shí)绩聘,在結(jié)束頁面時(shí)還在播放時(shí)必須銷毀webview
webview.getParant.removeView(webView);??? webView.destroy();
webSetting里面一些常用的方法
//設(shè)置自適應(yīng)屏幕,兩者合用
webSettings.setUseWideViewPort(true); //將圖片調(diào)整到適合webview的大小
webSettings.setLoadWithOverviewMode(true); // 縮放至屏幕的大小
自適應(yīng)這里很多人煩惱的是網(wǎng)頁上圖片過大導(dǎo)致網(wǎng)頁大于一個(gè)屏幕的寬度出現(xiàn)左右滑動(dòng)的現(xiàn)象耗啦,這里有一個(gè)方法就是加載js代碼
縮放操作
webSettings.setSupportZoom(true); //支持縮放,默認(rèn)為true芹彬。是下面那個(gè)的前提蓄髓。
webSettings.setBuiltInZoomControls(true); //設(shè)置內(nèi)置的縮放控件。若為false舒帮,則該WebView不可縮放
webSettings.setDisplayZoomControls(false); //隱藏原生的縮放控件
WebViewClient類 監(jiān)聽頁面加載過程中的各種狀態(tài)
當(dāng)我們通過loadUrl的方式重新加載一個(gè)網(wǎng)址時(shí)候会喝,這時(shí)候會(huì)先調(diào)用onPageStarted再調(diào)用shouldOverrideUrlLoading,當(dāng)我們?cè)诖蜷_的這個(gè)網(wǎng)址點(diǎn)擊一個(gè)link玩郊,這時(shí)候會(huì)先調(diào)用shouldOverrideUrlLoading 再調(diào)用onPageStarted肢执。 不過shouldOverrideUrlLoading不一定每次都被調(diào)用, 只有需要的時(shí)候才會(huì)被調(diào)用译红。
onReceivedHttpError 也是加載錯(cuò)誤 頁面加載錯(cuò)誤時(shí)在onReceivedError補(bǔ)獲不到信息時(shí)可以試試這個(gè)方法
WebChromeClient 監(jiān)聽一個(gè)頁面的js交互
在activity上使用webview预茄,在不斷點(diǎn)擊頁面里面鏈接進(jìn)行跳轉(zhuǎn)的時(shí)候涉及一個(gè)回退問題。這里有2個(gè)方式
后面會(huì)單獨(dú)寫一個(gè)關(guān)于webview js交互和webview緩存的問題,希望各位看官指點(diǎn)耻陕。