Cordova 和 Ionic 的区别

Cordovajavascript

    Apache Cordova是一个开源的移动开发框架。容许你用标准的web技术-HTML5,CSS3和JavaScript作跨平台开发。 应用在每一个平台的具体执行被封装了起来,并依靠符合标准的API绑定去访问每一个设备的功能,好比说:传感器、数据、网络状态等。css

    使用Apache Cordova的人群:前端

  • 移动应用开发者,想扩展一个应用的使用平台,而不经过每一个平台的语言和工具集从新实现。
  •  web开发者,想包装部署本身的web App将其分发到各个应用商店门户。
  •  移动应用开发者,有兴趣混合原生应用组建和一个WebView(一个特别的浏览器窗口) 能够接触设备A级PI,或者你想开发一个原生和WebView组件之间的插件接口。

Ionicjava

    ionic是一个专一于用WEB开发技术,基于HTML5建立相似于手机平台原生应用的一个开发框架。绑定了AngularJS和Sass。这个框架的目的是从web的角度开发手机应用,基于PhoneGap的编译平台,能够实现编译成各个平台的应用程序。android

  • ionic的开发添加android和ios环境。
  • ionic提供不少css组件和javascript UI库。
  • ionic能够支持定制android和ios的插件,也支持服务端REST的敏捷开发。 

解释1ios

  • Cordova是一个移动应用开发框架,你基于这个东西能够用网页代码做出APP。
  • Phonegap Build是一个在线打包工具,你把使用cordova写好的项目给Phonegap Build,Phonegap Build就会在线打包成App。
  • 目前你们所说的Phonegap,其实指的都是cordova,而那个真正被Adobe收购了的Phonegap(PhoneGap | Home),如今是Phonegap Build,(iPhone, Android SDK service)和cordova(Apache Cordova)的合体。而对于你面对的实际问题,就是需不须要Phonegap Build的功能,需不须要在线打包。

做者:冀鑫
连接:https://www.zhihu.com/question/21649237/answer/21728891
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。web

 解释2浏览器

    Ionic和Angular前端框架

    首先要明确的是Ionic是Angular的衍生品,Angular是单独的js库,和jQuery同样可以独立用于开发应用,而Ionic只是对Angular进行了扩展,利用Angular实现了不少符合移动端应用的组件,并搭建了很完善的样式库,是对Angular最成功的应用样例。即便不使用Ionic,Angular也可与任意样式库,如Bootstrap、Foundation等搭配使用,获得想要的页面效果。网络

    Ionic/Angular和Cordova

    可能会有人被问道:“Cordova比Ionic/Angular好吗?”,这就很尴尬了,根本是毫无心义的问题。它们在混合开发中扮演的是不一样的角色–Ionic/Angular负责页面的实现,而Cordova负责将实现的页面包装成原生应用(Android:apk;iOS:ipa)。就像花生,最内层的花生仁是Angular,花生仁的表皮是Ionic,而最外层的花生壳则是Cordova。包装完成以后咱们的页面才有可能调用设备的原生能力,最后才能上传到应用商店被用户使用。

    Ionic/Angular和Cordova插件

    关于Cordova插件要明确如下几点:

  •     Cordova插件的做用是提供一个桥梁供页面和原生通讯,首先咱们的页面不能直接调用设备能力,因此须要与可以调用设备能力的原生代码(android:Java;ios:OC)通讯,此时就须要Cordova插件了。
  •     Cordova插件可以再任何Cordova工程中使用,和使用什么前端框架(如Ionic)无关。
  •     Ionic 2中封装了Ionic Native,方便了Cordova插件的使用,但在Ionic 2中仍然能够像Ionic 1中同样使用Cordova插件,Ionic Native不是必须的。
  •     即便在Ionic 2中使用了Ionic Native,也首先须要手动添加插件,如:cordova plugin add cordova-plugin-pluginName。