有人用 cordova 吗?

用这玩意儿的人多吗?运行性能和开发效率上如何呢?

PS:小小吐槽一下:我发现好像所有混合开发的 app 冷启动都很慢,比如说 cordova 打包 vue + MintUI,打包之后容量在 10M 以内,但是冷启动 5s 以上。(同样的网页直接在安卓原生浏览器上,加上网络传输时间,打开都不要这么久,我怀疑是不是 cordova 本身很慢?)

而且冷启动的时候一直是一个白屏,网上查了一下说要解决这类问题,或者装载页面的时候把白屏改成 loading 图片都要直接修改他打包出来的安卓工程文件里面的代码,进行各种优化,相当于要懂原生开发,而且针对 ios 和安卓两个平台都要分别作优化,既然如此我还不如用原生呢。

阅读 4.4k
2 个回答

技术选型本身就有偏好,难以绝对量化,喜好也是因人而异,我的经验仅供参考:

  • Cordova的设计很漂亮,借助系统内置的Webview实现跨平台,通过插件实现平台相关的功能,几乎可以做任何类型的APP开发,适应性很广。
  • 开发效率高,体现在两个方面:JS的生态系统有大量成熟的轮子,而是Webview本身经过多年发展,稳定易用,工具多。

Cordova的缺点如你所说:

  • 启动速度慢一些,其实这个可以从操作系统层面优化(参考微软对IE和Office的优化),可惜Cordova不是操作系统亲生的,大部分操作系统不愿意对此优化。
  • 另一个缺陷就是Web控件本身效率差一些,不过这个差距现在已经不大了。另外Web控件缺少和系统外设的交互,比如相机、GPS、蓝牙等,这些只能通过插件来解决,相对麻烦一些,但都可以做。

我个人的意见,是否使用Cordova,要看你的需求,如果你的App是一般类型的App(非大量底层或硬件交互),且需要跨平台(两个或以上),这时,Cordova或者Cordova衍生出来的平台比如PhoneGap、Ionic就是非常合适的选择。

我当年在学校做项目的时候用过Ionic,就是一个Cordova的封装,效率是真的高,直接使用angular.js做移动应用,启动速度是没有办法,混合应用就是这样子的,React Native的似乎会快一些

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题