對PhoneGap開發感興趣的請加入群 PhoneGap App開發 348192525
手機成為現在軟件應用必不可少的一種設備,然而手機平台的不統一造成我們需要為不同手機重寫代碼,這對一般應用來說也許稱得上是一種浪費,那有沒有可以只寫一套代碼就能在不同手機上使用呢?今天准備開始做一個phonegap應用學習一下。
下面我將簡要的介紹編寫過程,如果你也不是初學者,那么就忽略這篇文章:)
phonegap介紹
官方網址:http://phonegap.com
08年一次ios開發者大會上來自Nitobi軟件公司的幾個家伙突發奇想,提出一個想法,想做一個工具來彌補web和ios開發之間的不足,並提出 Bridging the gap between the web and the iPhone sdk。一開始的目標並不是很大,但是做到了現在的 written once,run everywhere。我們很多人做事其實也應該這樣,一開始不要把目標弄得那么大,跳一步能夠上就好,這也是敏捷個人制定目標的一個原則。如果一下子目標太大,你會因為難以實現而給自己找理由,這樣到頭來你什么都沒有。
09年他們推出android adk和blackberry sdk,成了移動開發者的福音,就連ibm也加入進來。phonegap繼續成長,在11年10月,整個Nitobi團隊被adobe收購,隨后adobe把 phonegap送給了apache軟件基金會,接着apache把phonegap改名為cordova,cordova是Nitobi團隊當時坐落的街道名稱,用此名來紀念Nitobi團隊的貢獻。
PhoneGap是一款開源的手機應用開發平台,它僅僅只用HTML和JavaScript語言就可以制作出能在多個移動設備上運行的應用。 PhoneGap將移動設備本身提供的復雜的API進行了抽象和簡化,提供了一系列豐富的API供開發者調用,只要你會HTML和Javascript或 者Java語言,就可以利用PhoneGap提供的API去調用各種功能,制作出在各種手機平台(iPhone,Android ,BlackBerry,Symbian,Palm,Window Phone)上運行的應用。目前phonegap獲得Apple,IBM,NOKIA,palm等眾多公司的支持。簡單來說使用PhoneGap就是使用HTML,JavaScript和CSS來開發程序,最終通過PhoneGap可以產生對應版本的native 程序。
誰在使用PhoneGap
支持平台
Apache Cordova框架
2011年10月,Adobe收購了Nitobi Software和它的PhoneGap產品,然后宣布這個移動開發框架將會繼續開源,並把它提交到Apache Incubator,以便完全接受ASF的管治。PhoneGap的項目主管Brian LeRoux指出開源PhoneGap的決定在Adobe收購Nitobi之前就做出了,由於Adobe現在擁有PhoneGap商標,他們不得不換個名 字。第一個選中的名字是Callback,毫無創意,因此再改一次,產品現在叫Apache Cordova。Apache Cordova是PhoneGap貢獻給Apache后的開源項目,是從PhoneGap中抽出的核心代碼,是驅動PhoneGap的核心引擎,你可以把他想象成類似於Webkit和Google Chrome的關系。
Cordova supports Android 2.2, 2.3, and 4.x.
------------------------------------
以下使用cordova-3.1.0
准備
- 安裝JAVA JDK
- 安裝Eclipse
- 安裝Android SDK,根據自己的系統選擇相應的系統版本下載,下載解壓或安裝后運行SDK Manager.exe , 下載4.2 SDK,否則后續不能使用命令行創建項目
- 安裝ADT。選擇eclipse菜單Help下的【install New Software】,輸入https://dl-ssl.google.com/android/eclipse/
- 安裝NodeJS
-
這一步我安裝不成功,返回錯誤.根據錯誤log中的一些字搜索了一下關鍵字npm ERR! node_modules\npm\node_modules\npm-registry-client\lib\request.js:238:23) ,網上說有是代理服務器的問題,我也不懂,猜可能是權限問題,於是試試網頁訪問https://github.com 后登錄再安裝試試,竟然好了,原因不明.
- 新建一個項目,執行命令行 cordova create yw com.glodon.yw YW , 如果安裝有問題可以后面加上 –d啟動查看執行詳細信息。下載類庫時間有點長,我大概等了10幾分鍾吧,你也耐心點,不要中斷執行。我第一次就是因為不想等了,然后中斷,導致后面步驟失敗,不得已刪除下載的類庫目錄文件再次執行此步驟
-
cd yw 后,執行 cordova platform add android顯示我沒有安裝4.2 SDK,難道現在的cordova版本支持最低是4.2?先不管了,返回第3步驟執行下載4.2 SDK。這個步驟一開始也需要下載類庫,再等等,這個時間比上面的時間短一些:)
-
新建一個模擬器,然后執行cordova emulate android 則可打開模擬器。
- build項目:
cordova build
- 增加插件:
cordova plugin add org.apache.cordova.camera //攝像頭
cordova plugin add org.apache.cordova.dialogs //通知、震動cordova plugin add org.apache.cordova.vibration
-
你可以在Eclipse中新建一個Android項目,然后選擇從已有代碼中新建,選擇前面命令行新建的目錄。之后就可以在Eclipse中去工作了。
使用二維碼插件
想在項目中使用二維碼掃描,找了一下,發現已經有這個插件,地址:https://github.com/wildabeast/BarcodeScanner ,按照它的readme,網上也找了很長時間的使用說明,但是因為框架插件機制更改,找到的都是代碼片段,始終不能運行。於是看了一下源碼,終於搞定,下面把使用說明簡單說一下,這樣新手們可以不用像我這樣走彎路了。
- 在https://github.com/wildabeast/BarcodeScanner 下載插件代碼
- 從已有代碼新建一個項目,選擇android目錄
- 在項目的屬性頁 的【android】頁簽勾選【is library】,在Reference中【add】前面假的CaptureActivity項目
- 把插件代碼文件\src\android\com\phonegap\plugins\barcodescanner\BarcodeScanner.java 加入到項目中
- 更改config.xml
- 把源碼中的www\barcodescanner.js 文件加入到 asserts\www下,但需要更改一下代碼
- 在頁面調用二維碼掃描功能
我是phonegap 新手,初來乍到,上面有不對的地方請多指教。