編輯:關於Android編程
WebView(網絡視圖)能加載顯示網頁,可以將其視為一個浏覽器。 它使用了WebKit渲染引擎加載顯示網頁,實現WebView有以下兩種不同的方法: 第一種方法的步驟: 1.在要Activity中實例化WebView組件:WebView webView = new WebView(this); 2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁: 互聯網用:webView.loadUrl("http://www.google.com"); 本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中 3.調用Activity的setContentView( )方法來顯示網頁視圖 4.用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能, 需要覆蓋覆蓋Activity類的onKeyDown()方法, 如果不做任何處理,點擊系統回退剪鍵,整個浏覽器會調用finish()而結束自身,而不是回退到上一頁面 5.需要在AndroidManifest.xml文件中添加權限,否則會出現Web page not available錯誤。第二種方法的步驟: 1、在布局文件中聲明WebView 2、在Activity中實例化WebView 3、調用WebView的loadUrl( )方法,設置WevView要顯示的網頁 4、為了讓WebView能夠響應超鏈接功能,調用setWebViewClient( )方法,設置 WebView視圖 5、用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能, 需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理, 點擊系統回退剪鍵,整個浏覽器會調用finish()而結束自身,而不是回退到上一頁面 6、需要在AndroidManifest.xml文件中添加權限,否則出現Web page not available錯誤。 浏覽器控件是每個開發環境都具備的,windows的有webBrowser, android和ios都有webView。只是其引擎不同,相對於微軟的webBrowser, android及ios的webview的引擎都是webkit,對Html5提供支持。 本篇主要介紹android的webview之強大。 A. webview組件如何使用 1) 添加權限:AndroidManifest.xml中必須使用許可"android.permission.INTERNET", 否則會出Web page not available錯誤。 2) 在要Activity中生成一個WebView組件: WebView webView = new WebView(this); 或者可以在activity的layout文件裡添加webview控件: 3) 設置WebView基本信息: 如果訪問的頁面中有Javascript,則webview必須設置支持Javascript。 webview.getSettings().setJavaScriptEnabled(true); 觸摸焦點起作用 requestFocus(); 取消滾動條 this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY); 4) 設置WevView要顯示的網頁: 互聯網用:webView.loadUrl("http://www.google.com"); 本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets文件中 5) 如果希望點擊鏈接由自己處理,而不是新開Android的系統browser中響應該鏈接。 給WebView添加一個事件監聽對象(WebViewClient)並重寫其中的一些方法: shouldOverrideUrlLoading:對網頁中超鏈接按鈕的響應。 當按下某個連接時WebViewClient會調用這個方法, 並傳遞參數:按下的url。比如當webview內嵌網頁的某個數字被點擊時, 它會自動認為這是一個電話請求,會傳遞url:tel:123, 如果你不希望如此可通過重寫shouldOverrideUrlLoading函數解決: 另外還有其他一些可重寫的方法 1,接收到Http請求的事件 onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) 2,打開鏈接前的事件 public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } 這個函數我們可以做很多操作,比如我們讀取到某些特殊的URL,於是就可以不打開地址,取消這個操作, 進行預先定義的其他操作,這對一個程序是非常必要的。 3,載入頁面完成的事件 public void onPageFinished(WebView view, String url){ } 同樣道理,我們知道一個頁面載入完成,於是我們可以關閉loading條,切換程序動作。 4,載入頁面開始的事件 public void onPageStarted(WebView view, String url, Bitmap favicon) { } 這個事件就是開始載入頁面調用的,通常我們可以在這設定一個loading的頁面,告訴用戶程序在等待網絡響應。 通過這幾個事件,我們可以很輕松的控制程序操作,一邊用著浏覽器顯示內容, 一邊監控著用戶操作實現我們需要的各種顯示方式,同時可以防止用戶產生誤操作。 6) 如果用webview點鏈接看了很多頁以後,如果不做任何處理,點擊系統“Back”鍵, 整個浏覽器會調用finish()而結束自身,如果希望浏覽的網頁回退而不是退出浏覽器, 需要在當前Activity中處理並消費掉該Back事件。 覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法。 B. Webview與js交互 Webview與js的雙向交互才是android的webview強大所在 首先,webview可以定義一個在其內嵌頁面中可以觸發的事件 全屏代碼 1、在AndroidManifest.xml的配置文件裡面的
Galaxy S7 俨然已經成為目前最受關注的智能手機之一,許多人還將其稱作是目前最佳的智能手機。三星在這部手機身上帶回了對於 microSD 卡的支持,但
CollapsingToolbarLayout作用是提供了一個可以折疊的Toolbar,它繼承至FrameLayout,給它設置layout_scrollFlags,它可
在看本文之前,如果你對於Android的廣播機制不是很了解,建議先行閱讀我轉載的一篇博文:圖解 Android 廣播機制。 由於本案例比較簡單,故直接在此貼出代碼,不做
一、概述最近需要用進度條,秉著不重復造輪子的原則,上github上搜索了一番,看了幾個覺得比較好看的ProgressBar,比如:daimajia的等。簡單看了下代碼,基