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