尊重原創(chuàng)薪鹦,轉(zhuǎn)載請注明:From zsml2016(http://blog.csdn.net/qq_29269233)Power by zsml2016侵權(quán)必究次和!
前言:
最近是有點(diǎn)忙聋伦,趁著今天放假有時間肢簿,我就跟大家簡單分享Android中的WebView組件的使用!我接觸webview的時候是因?yàn)橐鲰?xiàng)目铣口,實(shí)現(xiàn)的需求很簡單黔寇,就是一個瀏覽器能夠打開一個指定的網(wǎng)址就行了偶器,所以我從接觸到使用實(shí)現(xiàn)用了一天時間,當(dāng)然還要經(jīng)過很多測試缝裤,項(xiàng)目才能算穩(wěn)定屏轰!接下來就給大家分享一下怎樣簡單方便地使用webview吧。作為Android開發(fā)者憋飞,我們都應(yīng)該知道在手機(jī)中內(nèi)置了一款高性能webkit內(nèi)核瀏覽器霎苗,在sdk中封裝了一個叫做webview組件,目前很多Android APP都內(nèi)置了可以顯示web作為頁面的界面榛做,也是利用了webview組件唁盏。
WebView的一些優(yōu)點(diǎn):
1、可以直接顯示和渲染web頁面检眯,直接顯示網(wǎng)頁
2厘擂、webview可以直接用html文件(網(wǎng)絡(luò)上或本地assets中)作布局
3、和JavaScript交互調(diào)用
一锰瘸、使用webview刽严,必須定義webview控件。在layout中:
<WebView android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
二避凝、在activity中獲得webview的引用舞萄,同時load一個網(wǎng)址:
setContentView(R.layout.*activity_main*);
//初始化控件
webView1 = (WebView) findViewById(R.id.*webView1*);
webView1.loadUrl("http://blog.csdn.net/qq_29269233");
還是那句話眨补,大家別忘了,要連網(wǎng)就要加上網(wǎng)絡(luò)權(quán)限:
<uses-permission android:name="android.permission.INTERNET"/>
這樣兩步就可以打開一個網(wǎng)頁了倒脓,是不是很簡單俺怕荨!
但是這個時候發(fā)現(xiàn)了一個問題崎弃,啟動應(yīng)用后甘晤,自動的打開了系統(tǒng)內(nèi)置的瀏覽器,解決這個問題需要為webview設(shè)置 WebViewClient吊履,并重寫方法:
webView1.setWebViewClient(new WebViewClient(){
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); return true;
}
這樣就能在webview應(yīng)用中打開網(wǎng)頁了安皱,如下圖所示:
三调鬓、webview的一些設(shè)置:
若自己要定義一個加載頁面的進(jìn)度條艇炎,需要展示給用戶的時候,先在layout中加入progressbar控件腾窝,再通過如下方式獲取webview內(nèi)頁面的加載進(jìn)度:
//加載進(jìn)度條設(shè)置
webView1.setWebChromeClient(new WebChromeClient() {
@Override public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
}
});
如果訪問頁面中有js缀踪,則必須設(shè)置webview支持js:
webView1.getSettings().setJavaScriptEnabled(true);
webview返回鍵設(shè)置:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == *KEYCODE_BACK*) && webView1.canGoBack()) {
webView1.goBack(); return true;
}
finish();
return super.onKeyDown(keyCode, event);
}
滾動條設(shè)置:
webView1.setVerticalScrollBarEnabled(false); //垂直不顯示
webView1.setHorizontalScrollBarEnabled(false);//水平不顯示
總效果如下:
至此,一個簡單的webview瀏覽器就完美結(jié)束了虹脯,由于webview的知識點(diǎn)真的好多好多驴娃,不是一時間就能講完的,接下來我會去完善一下webview的其他設(shè)置循集,
記得昨天我轉(zhuǎn)載的一篇覺得不錯的唇敞,但沒有去研究:在WebView中如何讓JS與Java安全地互相調(diào)用
更多精彩內(nèi)容請關(guān)注本人博客:http://blog.csdn.net/qq_29269233