Cordova是一個用基於HTML、CSS和JavaScript的,用於創建跨平台移動應用程序的快速開發平台。它使開發者能夠利用 iPhone、Android、Palm、Symbian、WP7、Bada和Blackberry等智能手機的核心功能——包括地理定位、加速器、聯系 人、聲音和振動等,此外Cordova擁有豐富的插件,可以調用。
優缺點
時下流行的移動Web應用可分為三種:原生應用、Web應用和混合型應用。
- 原生應用:通過各種應用市場安裝,采用平台特定語言開發。
- Web應用:通過瀏覽器訪問,采用Web技術開發。
- 混合型應用:通過各種應用市場安裝,但采用Web技術開發。它雖然看上去是一個原生應用,但里面訪問的實際上是一個Web應用。
原生應用的優勢:
- 提供最佳的用戶體驗、最優質的用戶界面和最華麗的交互;
- 針對不同平台提供不同體驗;
- 可節省帶寬成本;
- 可訪問本地資源;
- 盈利模式明朗。
原生應用的劣勢:
- 移植到不同平台上比較麻煩;
- 維護多個版本的成本比較高;
- 需要通過store或market確認;
- 盈利需要與第三方分成。
Web應用的優勢如下:
- 開發成本低;
- 適配多種移動設備的成本低;
- 跨平台和終端;
- 迭代更新容易;
- 無需安裝成本。
Web應用的劣勢如下:
- 瀏覽體驗短期內還無法超越原生應用;
- 不支持離線模式(HTML5將會解決這個問題);
- 消息推送不夠及時;
- 調用本地文件系統的能力弱。
混合型應用可以說是為了彌補上面兩種應用開發模式的缺陷而生,它是兩者混合的產物,並且盡可能繼承了雙方的優勢:
首先,它可以讓眾多Web開發人員幾乎零成本地轉型成移動應用開發者。
其次,相同的代碼只需針對不同平台進行編譯就能實現在多平台的分發,大大提高了多平台開發的效率。而相較於Web應用,開發者可以通過包裝好的接口調用大部分常用的系統API。
作為本文所講的Cordova,Cordova正是混合型框架中的佼佼者,它基於標准的Web技術——HTML、JavaScript和CSS,用 JavaScript包裝平台的API供開發者調用,具備強大的編譯工具來為不同平台生成應用,同時擁有豐富的第三方資源和產業鏈。
PhoneGap在Web應用和設備之間搭建了一個通信的橋梁,封裝了移動設備的平台差異,統一使用JavaScript接口訪問設備本地API,以此提供了一個優秀的跨平台解決方案。
- 安裝好jdk(配置好環境變量)下載地址http://www.oracle.com/technetwork/java/javase/downloads/index.html
- 安裝好Android SDK 下載地址 http://cordova.apache.org/docs/en/3.4.0/guide_platforms_index.md.html#Platform%20Guides
- 安裝好 Apache Ant 下載地址http://apache.fayea.com/apache-mirror/ant/binaries/
- 安裝好nodejs 下載地址https://nodejs.org/en
- 安裝好git
- 安裝Cordova
驗證是否安裝成功:
- 安裝Node.js后,命令行執行以下語句:npminstall -g cordova耐心等候直至安裝完成。
- Java
- Javac
- Java –version
- Ant –version
- Adb version
- Cordova –version
創建一個 cordova 工程:
cordova create hello com.shj.helloworld helloapp其中,第一個 hello 是文件夾的名稱;om.shj.helloworld 是app id,第二個 helloapp是工程的名稱,也是應用的名稱。
- 進入工程文件
cd hello
- 添加平台支持
cordova platform add ios cordova platform add amazon-fireos cordova platform add android cordova platform add blackberry10 cordova platform add firefoxos cordova platform add wp7 cordova platform add wp8 cordova platform add windows8
此處選擇cordova platform add android
- 添加插件支持
cordova plugin add org.apache.cordova.device //設備API cordovaplugin add org.apache.cordova.network-information //網絡(事件) cordova plugin add org.apache.cordova.battery-status //電池(事件) cordova plugin add org.apache.cordova.device-motion //加速器 cordova plugin add org.apache.cordova.device-orientation //羅盤 cordova plugin add org.apache.cordova.geolocation //定位 cordova plugin add org.apache.cordova.camera //攝像頭 cordova plugin add org.apache.cordova.media-capture //媒體文件處理 cordova plugin add org.apache.cordova.media //媒體文件處理 cordova plugin add org.apache.cordova.file //文件訪問 cordova plugin add org.apache.cordova.file-transfer //文件傳輸 cordova plugin add org.apache.cordova.dialogs //對話框 cordova plugin add org.apache.cordova.vibration //震動 cordova plugin add org.apache.cordova.contacts //聯系人 cordova plugin add org.apache.cordova.globalization //全球化 cordova plugin add org.apache.cordova.splashscreen //閃屏 cordova plugin add org.apache.cordova.inappbrowser //打開新的瀏覽器窗口 cordova plugin add org.apache.cordova.console //調試控制台
上面只是一些例子
- 也可以添加git插件cordovaplugin add https://github.com/apache/cordova-plugin-console.git
- 你可以用以下命令查看所有已經安裝的插件cordova plugin ls
- 使用以下命令刪除插件cordovaplugin rm org.apache.cordova.console
- Plugin add高級選項上面的安裝方式是從registry.cordova.io庫中按照id獲取插件,這是一個非常通用的做法。你可以在安裝時指定版本,比如:
cordovaplugin add org.apache.cordova.console@latest
cordovaplugin add org.apache.cordova.console@0.2.1
- 插件安裝完了就生成對應的項目 cordova platform update android
- 安裝完了就是編譯:cordova build android 全部編譯 cordova build
- 通過以下命令查看幫助信息:cordova help
- 以下語句更新cordova npmupdate -g cordova