尊重原創,轉載請注明:From zsml2016(http://blog.csdn.net/qq_29269233)Power by zsml2016侵權必究!
前言:
最近是有點忙,趁著今天放假有時間,我就跟大家簡單分享Android中的WebView組件的使用!我接觸webview的時候是因為要做項目,實現的需求很簡單,就是一個瀏覽器能夠打開一個指定的網址就行了,所以我從接觸到使用實現用了一天時間,當然還要經過很多測試,項目才能算穩定!接下來就給大家分享一下怎樣簡單方便地使用webview吧。作為Android開發者,我們都應該知道在手機中內置了一款高性能webkit內核瀏覽器,在sdk中封裝了一個叫做webview組件,目前很多Android APP都內置了可以顯示web作為頁面的界面,也是利用了webview組件。
WebView的一些優點:
1、可以直接顯示和渲染web頁面,直接顯示網頁
2、webview可以直接用html文件(網絡上或本地assets中)作布局
3、和JavaScript交互調用
一、使用webview,必須定義webview控件。在layout中:
<WebView android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
二、在activity中獲得webview的引用,同時load一個網址:
setContentView(R.layout.*activity_main*);
//初始化控件
webView1 = (WebView) findViewById(R.id.*webView1*);
webView1.loadUrl("http://blog.csdn.net/qq_29269233");
還是那句話,大家別忘了,要連網就要加上網絡權限:
<uses-permission android:name="android.permission.INTERNET"/>
這樣兩步就可以打開一個網頁了,是不是很簡單啊!
但是這個時候發現了一個問題,啟動應用后,自動的打開了系統內置的瀏覽器,解決這個問題需要為webview設置 WebViewClient,并重寫方法:
webView1.setWebViewClient(new WebViewClient(){
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); return true;
}
這樣就能在webview應用中打開網頁了,如下圖所示:
三、webview的一些設置:
若自己要定義一個加載頁面的進度條,需要展示給用戶的時候,先在layout中加入progressbar控件,再通過如下方式獲取webview內頁面的加載進度:
//加載進度條設置
webView1.setWebChromeClient(new WebChromeClient() {
@Override public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
}
});
如果訪問頁面中有js,則必須設置webview支持js:
webView1.getSettings().setJavaScriptEnabled(true);
webview返回鍵設置:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == *KEYCODE_BACK*) && webView1.canGoBack()) {
webView1.goBack(); return true;
}
finish();
return super.onKeyDown(keyCode, event);
}
滾動條設置:
webView1.setVerticalScrollBarEnabled(false); //垂直不顯示
webView1.setHorizontalScrollBarEnabled(false);//水平不顯示
總效果如下:
至此,一個簡單的webview瀏覽器就完美結束了,由于webview的知識點真的好多好多,不是一時間就能講完的,接下來我會去完善一下webview的其他設置,
記得昨天我轉載的一篇覺得不錯的,但沒有去研究:在WebView中如何讓JS與Java安全地互相調用
更多精彩內容請關注本人博客:http://blog.csdn.net/qq_29269233