3.2.3 PhoneGap

PhoneGap

前言:

相信寫手機程式的人都想讓自己的程式可以很簡單的
達到跨平台(Android/iPhone/BlackBerry/Symbian) 的功能,
但是偏偏每種手機作業系統開發的程式語言數百種(不考慮J2ME).
要寫出每個平台都可以用的軟體可以說是難上加難.

何謂PhoneGap:

PhoneGap是一個開放open source開發框架建設的"跨平台"mobile apps在編寫apps的HTML和JavaScript仍利用core features在iPhone / iTouch,ipad,Google的Android,Palm,Symbian以及黑莓的SDK.

自從在 2009年4月贏得的Web 2.0博覽會的LaunchPad競爭,PhoneGap已被普遍承認為一個game-changer為mobile app開發。開放的open source已被下載超過 20萬次,數百種apps的建立使用PhoneGap,並可在mobile apps商店和目錄取得。 2009年,PhoneGapInfoWorld評為最高新興企業技術類別中的“跨平台mobile app的發展”。

PhoneGap的任務是
Web-enable native設備的功能與開放的標準,例如HTML,CSS和JavaScript,讓您可以專注於apps建設,而不是在複雜的創作平台兼容層。

                                                                         參考資料: http://phonegap.com/

  

圖片參考資料: http://phonegap.com/

* 用網頁寫出手機應用程式:
    
        用來撰寫網頁,  寫Javascript的prototype, PhoneGap 的理念就是想讓, 會寫網頁的人, 也可以產出屬於自己的手機應用程式.
   
    * PhoneGap是一個具有擴充性的手機瀏覽器
    
        可以把PhoneGap當作是一個 Android/iPhone/BlackBerry 的瀏覽器,  但又比內建的瀏覽器更能貼近網站開發者.

    * 讓你的手機網站, 與使用者更緊密互動
    
        當手機使用者, 瀏覽你的網站, 你的網站需要讓使用者輸入朋友的電話號碼....,但是常用電話簿的我們,有誰能記得幾個號碼?


        透過PhoneGap. 你只是再按紐加上 onclick="JCore.loadContacts", 那手機就會跳出你的電話簿,讓你選擇一位朋友後, 把朋友的手機號碼, 帶到你網頁上所設的的欄位.

 

為何使用PhoneGap ???

使用容易
就像使用HTML、CSS和JavaScript一樣簡單,應該將設備的整合進量簡單化,這樣才可以專注於應用程序的建構。 PhoneGap目的就是通過web設備的功能與本地的開放標準來解决設備的整合問題。

硬體的區別
Apple iPhone、Google Android和各種型號都擁有超大的螢幕以及强大的驅動功能。網路使這些設備在一個一致的平台中,這樣避免開發者必須以三個不同的軟體開發模式來實現他的邏輯。

完全開放source code
已經將全部web和標準進行開放。

       
       
PhoneGap 運作原理:
   
    * 網頁-> 手機:
        
        相信認識Javascript的人, Javascipt 有很多物件 (document / window ...)

        要用網頁通知手機作啥事, 只要呼叫使用該瀏覽器支援的物件

        For Example:
       
            JCore.loadContacts(5/*最多回應我5個聯絡人就可以了*/)
            JCore.showToast('hello world')
       
    * 手機 -> 網頁:

    
        手機有一個Background Service, 定時檢查Gmail, 當有新的信件時, 透過改變瀏覽器網址, 來執行呼叫Javascript的function....
       
        JAVA 呼叫 loadUrl 改變瀏覽器網址:
       
            javascript:newMail(5/*第一信件的主題*/, '第二信件的主題*第三信件的主題*/)


    PhoneGap是一個自由開放源碼的開發工具看框架,允許利用HTML和JavaScript的強大功能在iphone的SDK上開發網頁

以下是使用框架的示範:

//GAP will invoke this function once it has the location
  function gotLocation(lat,lon){
    $('lat').innerHTML = "latitude: " + lat;
    $('lon').innerHTML = "longitude: " + lon;
  }

 

  function takePhoto(){    var photo = gap:takePhoto();    return photo; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PhoneGap:


何謂PhoneGap?

PhoneGap是一個用基於HTML.CSS.JavaScript的創建移動.跨平台移動.應用程序的快速開發平台,它使開發者能夠利

用iPhone.Android.Palm.Symbian.WP7.Bada.Blackberry智能手機的核心功能.此外PhoneGap擁有高度的可改造

性.可以加入許多功能PhoneGap需要特定平台提供的附加軟件,例如iPhone的iPhone SDK.Android的Andr​​oid SDK等等.

使用PhoneGap只比為每個平台分別建立應用程序好一點點.因為雖然基本代碼是一樣的.但是你仍然需要為每個平台分別編譯應用程序


參考: http://www.cnblogs.com/guyoung/archive/2011/12/15/2288416.html


PhoneGap如何運作呢?

1.使用Web Standards建立應用程式:用HTML5為主.因此一般開發人員熟悉的HTML及JavaScript就可以用來建立應用程式


這邊會有一個疑問:

都是用Web Standards建立.為何還要PhoneGap?直接使用手機內建瀏覽器不行嗎?

其實是可以的.但是有許多應用程式需要使用智慧型手機的特殊裝置.像是照相.地理位置定位.檔案系統等等.

而顧慮安全性.使得不太可能完全/直接取得這些手機的存取權限.因此如果是一般網站應用程式就可解決之問題是不需要Phone的

2.使用PhoneGap封裝:使採用PhoneGap框架的應用程式將可存入/寫入原生API(不同種類手機)

3.多種平台的部屬:以標準網頁技術建立的應用程式.將能夠在行動裝置上運作


參考: http://blog.lyhdev.com/2011/05/phonegap.html

 

 

PhoneGap版本有?


2011年7月29日.PhoneGap 1.0的推出.而1.0重點是訪問本地設備的API

其他的改進包括:

穩定的API和可插拔的架構.W3C. DAP. API的兼容性聯繫人API遠程調試工具一個新的統一的橋接口.

使增加平台和平台擴展容易改進的插件開發流程。


2011年10月1日.PhoneGap推出1.1.0版

新功能:

1.支持黑莓playbook的WebWorks併入

2.orientationchange事件

3.媒體審查-使用HTML5的音頻及(或)正常化的API


        參考: http://blog.lyhdev.com/2011/05/phonegap.html