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年,PhoneGap被InfoWorld評為最高新興企業技術類別中的“跨平台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的Android 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