什么是cordova?
cordova是PhoneGap贡献给Apache的开源项目,是一个可以使用标准WEB技术:HTML5、CSS3、JavaScript,进行移动app开发的跨平台核心引擎。
他能使你的一套代码同时运行在多个平台上,属于第一代混合应用开发解决方案。相比其他方案,这个学习成本最低。适合做较小的项目。如果是大规模的复杂项目,使用cordova方案会有一定的性能问题和兼容性问题。
历史和对比
从时间出现顺序上来看,主流的混合应用开发方案如下:
Cordova
->React Native
-> Weex
-> Flutter
cordova
是基于web技术实现,仍然有大量的轻量级项目在使用这个技术。特别是如果项目使用vue
作为主要开发技术,选择跨平台方案时,往往会首选cordova。最早出现于2012年,于2012-2015年间非常活跃。(事实上我也好久不用这个东西了,最近翻出来完全是因为VUE
的火爆,而Cordova可以将VUE
跨平台发布)
RN
是JavaScript开发+原生渲染的开发方案,由Facebook主导开源。出现于2015年。
Weex
和RN一样,是JavaScript开发+原生渲染的开发方案,由阿里巴巴主导。出现于2016年。
Flutter
是使用自绘UI+原生的开发方案,属于第三代方案(2019年开始流行),使用的语言是Dart
,由google主导。
比较特别的是uni-app
相对小众(但是在国内流行,因为可以开发微信小程序),其vue部分,实际上还是使用了cordova的相关技术和思路,而其nvue部分,说白就是weex,因此属于一二代技术方案混合的产物。
具体的对比,另写一篇。
cordova有什么?
Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。
Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。
除此之外,你还可以:
1.使用别人的cordova插件,进而使用相关跨平台功能。
2.自定义cordova插件,完成js代码到app平台原生代码的交互。
cordova支持系统
Cordova支持如下移动操作系统:iOS, Android,ubuntu phone os, Blackberry, Windows Phone, Palm WebOS, Bada 和 Symbian。
一般情况下,我们只需要用到iOS和Android就可以了。
安装
可以直接使用npm进行安装。
npm install -g cordova.
基本命令
1.创建项目
cordova create <path>。
查询命令相关选项
cordova help create
2.添加平台
创建项目之后,你需要给项目添加平台,使得其可以在某个平台上运行。
cordova platform add <platform name>。
## for example
cordova platform add android
如果你想知道可以添加哪些平台,可以运行。
cordova platform
3.运行app
完成相关开发之后,使app运行在相关平台上。
cordova run <platform name>
## for example
cordova run browser.
注意事项
cordova只是提供了一个跨平台的工具,并不能帮你解决不同平台上的所有开发问题,特别是每当平台出现新的版本,例如iOS发布新版本,android发布新版本,这时候你的代码也许需要做相应调整。所以拥有一定的不同平台上的开发经验也是必须的。
cordova的插件也是一样,如果某个插件太久没有更新,那么你使用的时候,就要小心了。
cordova插件
cordova只是提供了基础的跨平台功能,前文提到,还可以引用别人的插件,这部分网上很容易搜索到相关使用方法。
但是,很多时候,我们需要自己定制一些功能,
那么,我们如何自己制作并且使用插件呢?请看此文:
如何创建cordova插件
如何创建一个引入Module的Cordova插件
cordova优化
修改cordova底层以支持input直接打开照相机或图片库
相关资料
官网:https://cordova.apache.org/
中文官网:http://cordova.axuer.com/