1 / 14

網路應用

網路應用. 一、 網頁瀏覽. Android 應用程式採用 Java 語言,因此 Java 中所有對網路處理的方法,都能移植到 Anadroid 平台上。 Android SDK 也 提供了「 WebView 」類別,簡化我們網路應用開發的工作。 WebView 的內部使用由 Apple 開發並釋出的「 WebKit 」為網頁處理引擎,它的使用與其他視圖元件並無太大差異 。. 使用網路, 應用程式專案的組態檔 (AndroidManifest.xml) ,必須申請對網路使用的許可如下: <uses-permission android:name=

eros
Télécharger la présentation

網路應用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 網路應用

  2. 一、網頁瀏覽 • Android應用程式採用Java語言,因此Java中所有對網路處理的方法,都能移植到Anadroid平台上。 • Android SDK也提供了「WebView」類別,簡化我們網路應用開發的工作。 • WebView的內部使用由Apple開發並釋出的「WebKit」為網頁處理引擎,它的使用與其他視圖元件並無太大差異。

  3. 使用網路,應用程式專案的組態檔(AndroidManifest.xml),必須申請對網路使用的許可如下:使用網路,應用程式專案的組態檔(AndroidManifest.xml),必須申請對網路使用的許可如下: <uses-permission android:name= ”android.permission.INTERNET”/> • WebViewSimple Test範例 • 以「WebView」元件取代原先預設的「RelativeLayout」佈局。 • 在活動程式碼中以WebView的「loadUrl(String url)」方法,載入指定網址的網頁,或顯示HTML檔描述的內容。 • 範例詳細內容請參考原書。

  4. 二、建立網頁操作功能 • WebView不像一般的網頁瀏覽器,預設下它只是單純的顯示網頁內容,並沒有提供一些網頁操作的工具。 • 如果想要對網頁瀏覽有多一點控制,就必須抑制WebView的預設行為,讓超連結開啟改在WebView內部進行,這樣WebView就會在內部以一個歷程(history)堆疊記錄使用者拜訪過的網頁,然後以「goBack()」或「goForward()」方法在拜訪過的網頁之間瀏覽。

  5. 要達到這目的,我們必須建立一個延伸自「WebViewClient」類別的自建類別,在這自建類別內覆寫需要的處理方法,例如doUpdateVisitedHistory(WebView myWebView, String url, boolean isReloaded)方法,此方法在歷程記錄有變動時由系統呼叫執行。 • 完成WebViewClient的子類別定義後,用WebView的「setWebViewClient(WebViewClient)」方法將此子類別指定給WebView,這樣就能抑制WebView的預設行為,改採我們所設計的行為。

  6. WebViewControlTest範例 • 在佈局內增加按鈕元件,為WebView提供了在拜訪過的網頁中前後頁瀏覽以及縮放網頁內容等控制方式。 • 在佈局中也提供EditText元件,讓使用者可以直接鍵入要拜訪網頁的網址。 • 範例詳細內容請參考原書。

  7. 三、與JavaScript溝通 • 因為網頁功能大都由JavaScript開發,因此要能和網頁溝通,就表示Android應用程式碼必須要能與JavaScript程式碼互動。 • 要達到這個目的,首先必須在WebView上啟用JavaScript,接著必須建立Android程式碼與JavaScript程式碼之間的介面。說明如下: • 在WebView上啟用JavaScript

  8. 要啟用JavaScript必須透過附屬於此WebView的「WebSettings」物件,此物件可以由WebView的「getSettings()」方法取得,然後用取得的WebSettings物件的「setJavaScriptEnabled(Boolean)」方法就能啟用/停用JavaScript。要啟用JavaScript必須透過附屬於此WebView的「WebSettings」物件,此物件可以由WebView的「getSettings()」方法取得,然後用取得的WebSettings物件的「setJavaScriptEnabled(Boolean)」方法就能啟用/停用JavaScript。 webView = (WebView) findViewById(R.id.webView1); WebSettings webSettings=webView.getSettings(); webSettings.setJavaScriptEnabled(true); • 建立Android程式碼與JavaScript程式碼之間的介面 • 要讓網頁的JavaScript程式呼叫Android程式中的方法,必須建立一個JavaScript程式可以看得到的介面,並在此介面中定義JavaScript程式可以呼叫的方法。

  9. 設計此介面最簡單的方式,就是自建一個類別,不管是單獨成為一個檔案或含在活動類別內都可以。設計此介面最簡單的方式,就是自建一個類別,不管是單獨成為一個檔案或含在活動類別內都可以。 public class JSAndAndroidInterfaceName { ….. @JavascriptInterface //For SDK 4.2以上 public void JSCanCallThisFunction(…) { … } } • 如果開發專案設定的「targetSdkVersion」為API Level 17以上(SDK 4.2以上),在定義讓JavaScript呼叫的方法前一定要加上「@JavascriptInterface」。

  10. 為WebView增加此介面 • 用WebView的「addJavascriptInterface(Object ob,String agendName)」方法為自己增加此介面,方法中第1個參數是此介面物件的參考,第2個參數是提供JavaScript此介面的識別名稱。 webView.addJavascriptInterface(new JSAndAndroidInterfaceName (this), " agendName ") • 從Android程式執行開啟網頁中的JavaScript方法 • 用WebView的「loadUrl(String)」方法,以傳入參數指名是JavaScript內那一個方法即可。 webView.loadUrl("javascript:methodName(…)");

  11. AndroidAndJS Test範例 • 透過WebView的loadUrl方法以「file:///android_asset/<filename.html>」開啟指定網頁。 • 這網頁會顯示一個按鈕(input type=”button”)與一個文字輸入框(“input type=”text”)。當按下按鈕的時候,網頁中的JavaScript會呼叫Android程式中的「CallMe(String)」方法(介面識別名稱為Android),將傳遞的字串內容以Android佈局中的TextView元件顯示。 • 網頁中也提供有showAlert()函式供Android程式呼叫,此函式被呼叫時會以JavaScript的文字輸入框顯示「Android call me!」。

  12. 範例詳細內容請參考原書。

  13. 四、顯示Android內設定的網頁內容 • WebView用「loadData(String)」方法顯示定義在Android自己程式內的網頁內容,只不過。 • WebViewLoadData Test範例 • 活動程式內以字串定義網頁內容,並透過WebView loadData(String)方法顯示所定義的網頁。 • 範例詳細內容請參考原書。

  14. 五、用Intent開啟網頁 • 可以直接用Intent為我們顯示網頁內容,不必用到WebView。 • WebAndIntent Test範例 • 當使用者按下佈局中的按鈕,按鈕的onClick事件處理方法會以Intent開啟指定的網頁(http://tw.msn.com/?ocid=iefvrt)。 • 範例詳細內容請參考原書。

More Related