ljp
ljp
  • 发布:2014-11-20 10:08
  • 更新:2019-05-30 19:26
  • 阅读:50124

html5+ plus和phoneGap、cordova的比较

分类:HTML5+

麻烦问一下我想知道html5+ plus可以调用手机的原生功能比方说什么相册啊,联系人啊,加速器啊等等,那phonegap框架也是可以调用这些功能了,他们什么区别呢,如果我用html5+plus了是不是就不用phonegap了?为什么现在好多人还在用phonegap呢

2014-11-20 10:08 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

此问题很早,提问时HBuilder刚推出不久,相比成熟的phonegap,当时还有人询问为什么用phonegap的人多。
从2015年起DCloud的市场占有率已经超过了phonegap/cordova。下图是百度指数对比:

目前DCloud的产品份额已经远超cordova/phonegap数倍。在DCloud2018年推出uni-app后,产品优势愈发明显。

cordova的包都是单页应用,拓展能力可以通过插件解决,但性能问题严重。也就是因为web的性能即使是靠spa也无法解决,所以微信放弃了js sdk改做小程序。小程序类框架都是从DCloud的5+演变而来的,包括原生的窗体动画,长列表下拉刷新且滚动条不通顶、左右拖动长列表、以及iOS上左边缘拖动返回上一个页面...
如果spa真能解决问题,那不止是DCloud傻帽了,微信、支付宝、百度、今日头条等做小程序的都傻帽了,大家内嵌一个cordova做小程序得了。

====================以下为历史回答,内容仍然有效==================
phonegap自己的定位是混合开发hybrid,用原生+js;
HBuilder的定位是纯js搞定一切。
5+ 和 phonegap在能力、性能、开发便利性上都优于phonegap。

先看能力:

  1. 5+ 有HTML5+和Native.js技术,HTML5+包含常用的跨平台的几百个API,能满足常规开发需求,而Native.js把40w原生api映射成js对象,这样js可以直接调原生。HTML5+和Native.js的组合形成了最强大的能力引擎。 而phonegap需要用原生工程师写原生插件并给js开发者封装接口才能实现js调原生能力,开发成本、对人的要求都不一样。
  2. 当然5+ 也支持原生插件,这点和phonegap类似。一个已经写好的原生sdk,无需使用Native.js重写,也可以通过5+ sdk来集成。详见文档中心 - 5+ App - 5+ SDK
  3. 5+的直接封装的跨平台api比较全,二维码、摇一摇、地图、微信分享、语音输入、推送这些常用api都是跨平台的,使用方便简单。详见 http://www.html5plus.org/

再看性能:

phonegap做的app,在低端Android手机上很难流畅运行,否则HTML5早就火了,原生开发早就被挤压了。Phonegap为了避免HTML5的体验不佳,采用了spa模式,但这个模式其实在低端机上也玩不转,而且代码非常复杂。
5+ App的性能更高,它的动态效果都是被我们的增强引擎处理的,通过增强的引擎,可以在低端机上流畅的运行各种动态效果,比如侧滑菜单、下拉刷新、长列表滚动,见 官网首页 - App选项卡- 性能视频

最后看开发便利性:

phonegap没有专业开发工具,语法提示、调试、打包都很麻烦。
而在HBuilder里,5+的语法api提示非常完善;
把手机通过数据线连上电脑,HBuilder可以真机运行,保存一个页面立即在手机上看到效果,Android上还可以看console.log。而用phonegap,你改完一个页面,不得不先打包,然后安装在手机上,然后发现不对,然后改下代码,然后继续打包。。。
关于打包,phonegap由adobe提供了云打包,但需要先在本机准备资源,然后提交到国外的服务器,而HBuilder是一键打包,更加方便。当然phonegap和HBuilder都支持本地打包,那样就需要点原生开发知识了。

除了工具和runtime,还有mui框架

phonegap只是一个手机runtime,没有HBuilder工具,更没有Mui框架。
mui是目前最接近原生App的HTML5框架,它的体验比jqm、bootstrap等框架更接近原生,它的性能远高于jqm、bootstrap、Ionic、framework7等框架。
这种性能差别原因有2,一方面是设计思路不同,mui坚持用原生js做,不依赖jquery或angularjs,因为框架的依赖越多,App性能越差;另一方面是因为mui调用了5+的底层原生加速,这比不带原生加速的框架更快。
mui详见:http://dcloudio.github.io/mui/

当然phonegap有一个优势,就是能支持windows phone、blackberry,这方面5+确实没有支持。

通过上述比较,应该一目了然了。如还有问题,可再探讨

  • waybi

    问一个题外话,既然上文观点一直强调接近原生,那就是还没达到原生,那为何这几年html5一直那么火,它的优势到底在哪里,为何那么多公司抛弃ios,Android开发 而用h5开发,暂时先那么多

    2014-11-21 23:25

  • DCloud_heavensoft

    HTML5这几年没火啊,这几年还是原生的天下啊。HTML5的优势,参加这个文章 http://www.csdn.net/article/2014-11-06/2822513-how-html5-changes/3

    2014-11-22 02:04

  • 钊有

    平台封装的地图这块封装的不是很好,界面切换就会出现黑屏现象。

    2016-12-19 14:52

  • 1***@qq.com

    楼上的看你吹牛皮吹的我一愣一愣的,好好说话。我做移动端这么多年最服你,调取手机基本的设备Cordova/phonegap/H5plus没有太大的区别,1、Cordova的优势可以打包桌面应用程序。2、Cordova插件库非常丰富非常多比如说Cordova-SQLLite你看看在国内除了原生appH+和uni-app能不能用还有很多我不一一说出来。 但是nui-app可以做微信小程序和支付宝小程序,这个国外框架Cordova做不了。我作为一个技术爱好者个人觉得国外的好用一些,国内的相对而言好用一些。但是一般做非常庞大的体系或者比较复杂的个人建议用国外的(1、国外的稳定从框架上我没觉得国内性能能超过Cordova,后者后出来的性能怎么能超过前者记住姜还是老的辣,不是我在无视国内技术,国内唯独VUE(WEEX)我觉得不错,而且VUE的开发者是一个国籍华人从小人家是在国外长大的,只不过是中国的血统。)

    所以都上当你对H5+或者对mui、uni-app玩得非常六的时候可以说它的好处,但是没深入玩过Cordova、Electron等等就不要说性能不好、毕竟我都玩过!

    2019-01-16 17:34

  • DCloud_heavensoft

    回复 1***@qq.com: 我真的也服了你了,你真的研究性能吗?整个业内说的网页性能不好,所以要做小程序,大家都是傻子吗?cordova的包都是单页应用,一堆一堆的性能问题,要是spa能解决问题,大家干嘛还要做小程序呢?小程序类框架都是从5+演变而来的,都是原生的窗体动画,都可以长列表下拉刷新且滚动条不通顶,都可以左右拖动长列表...照你的说法,DCloud、微信、支付宝、百度、今日头条都是傻子,内嵌一个cordova框架做小程序算了

    2019-01-17 03:02

waxdz2015

waxdz2015

40w原生api映射成js对象

从哪里可以看到这个详细文档呢,html web开发转过来的,不懂原生的求助!

  • 楚小秋

    http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/88

    2015-06-24 11:37

RunUpApp

RunUpApp

40w原生api映射成js对象。
请问是否需要Android功底才能顺利使用这些js对象。
另外,官网提供的Native.js。能否提供一个40w原生API的文档说明,类似HTML5 的文档的这种,工程浩大,可以号召网友参与,官方审核。

ljp

ljp (作者)

谢谢您的耐心解释,这样更加深了对hbuilder的理解

jh201320

jh201320

感觉教程 ,资料什么的少了点

lhf

lhf

有没有帮助文档啊,我有android 基础

  • AC米兰的小铁匠

    自己把java转为js

    2015-10-12 11:44

  • AC米兰的小铁匠

    我说的是用native.js的时候,一般只需要用到5+,只用5+的话安卓基础基本就无毛用了

    2015-10-12 11:46

netcorner

netcorner

用你们的二维码扫码速度真够慢的,有没有好的解决方法?

人来疯

人来疯

后续会收费吗?
会不是植入商业代码?

凡志

凡志

呵呵 外围关注 phonegap, appcan.dcloud等平台的迅速对抗。现在新出的apicloud,也进入这个行列。看来是有赚头。主要是开发者有赚头。

Donald

Donald

比如native.js每个API都要区分android与ios,这岂又不是一个平台一套API,跨平台性比phoneGap差吧?而且Phonegap不仅支持anodriod和ios,还支持windows phone和黑莓。

  • DCloud_heavensoft

    wp和bb的问题已经补充说明,这确实是pg的优势。另外跨平台api部分,是5+和Native.js的组合,5+是跨平台的,Native.js是补充。

    2015-08-18 20:39

  • Donald

    明白了,谢谢回复。

    2015-08-23 21:36

  • AC米兰的小铁匠

    就是能不用native.js就不用的意思,5+封装了常用的API,应该是5+就够平时使用。

    2015-10-12 11:43

慕青儿

慕青儿

请问使用5+开发支持android和ios最低版本是多少?

zpl

zpl - 现读研究生

请问5+就支持android和ios吗?

ZXAngel10

ZXAngel10

我最近也在考虑公司的项目要不要更换框架,我想得到的信息是HBuilder官方的态度!因为HB是新兴起的框架,插件太少,做下来这段时间,发现技术支持方面也有很多缺陷,很多东西都没有得到很好的解决,虽然官方技术顾问的态度非常赞,也一直不遗余力的为我们解决,但结果还是不理想!如果HB官方态度能给我们足够的信心,那我们也愿意去尝试下一起去壮大HB家族!

  • DCloud_heavensoft

    我们肯定是不遗余力的继续完善产品和开放生态体系。哪个产品都有坑,但我相信DCloud对未来的产品判断比其他竞品更准,使用mui的多端发布、进行流应用发行,这些都能够再更大层面上解决开发者的关键问题。

    2015-10-16 20:50

  • sbin

    我也遇到同样的问题,之前的项目都是使用appcan框架的。换到hb主要原因是这个ide实在太好用了。

    但是还有一些担心,比如引擎会不会随着第三方插件的改变而改变。

    比如,ios升级9以后,像第三方应用的调用使用了白名单机制

    使用了schame机制。这些hb是否可以随着更新


    另外 ,目前我还没有找到事件机制来实现多webview之间进行通信,是否有这个方案?

    2015-11-29 18:19

Damir

Damir

我使用HB一段时间后,我总觉得并不好用.1.文档不齐全,很多需要去看源码来解决.2.5+Runtime总觉得有Bug还是怎么着,例如我在IOS上能跑的程序,在Android上Downloader同一个地址却失败.还有比如说Speech的options中一系列的事件都没有被调用,完全坑爹.我真的无言了.

  • DCloud_heavensoft

    坑吧,肯定还是有的,但cordova的坑也不少。5+有什么问题,反馈给我们,比如downloader的问题,我们确认是bug肯定会改的。

    2015-11-02 20:05

  • Damir

    回复 DCloud_heavensoft:不知道那里可以反馈,SpeechRecognizeOption里面的on系列的都不被触发.

    2015-11-03 15:40

  • Damir

    回复 DCloud_heavensoft:Downloader在IOS下正常,在Android4.4(小米4)上面下载http://tsn.baidu.com/text2audio?tex=阿尔龙&lan=zh&cuid=99000693039051&ctp=1&tok=24.29a838a1493f948b0372cf96c2b661c9.2592000.1449128759.282335-6266855&spd=5&pit=5&vol=5&per=0 这样的地址会返回下载成功的信息,但是文件为空,tex=阿尔龙替换为短英文可以成功,如果长英文就会出现一直下载,没反应.

    2015-11-03 15:45

  • Damir

    回复 DCloud_heavensoft:不太清楚怎么反馈问题,在问答社区问得问题也没有得到回复.

    2015-11-03 15:46

  • DCloud_heavensoft

    回复 Damir: 在ask发问题,邀请DCloud_开头的客服或Android工程师即可。

    2015-11-03 20:14

  • Damir

    downloader问题已经解决,使用post即可

    2015-11-03 22:46

Abel5

Abel5

也在关注,选择起来比较困难。编码工具是影响生产率的重要因素,这方面hbuilder占优;cordova只是一个runtime,但cordova是apache的项目,技术支持会强很多。在中国做开源和开放的项目不容易,期待hbuilder的尽快成熟!

  • Hevin丶

    事实上,现在微软在 Visual Studio 中增加了对 cordova 的支持,相信编码工具上 VS 要比 HBuilder 强得多吧。: )

    2016-05-22 15:12

l***@live.com

l***@live.com

虽然基础差,但是看到这么好的编辑工具赞一个。。

l***@yeah.net

l***@yeah.net

用cordova和HBuilder打包过HTML5小游戏进行过测试,cordova的动画流畅很多,HBuilder则非常卡顿,需要进一步优化。

  • DCloud_heavensoft

    不会的。应该是你没打开硬件加速。

    2016-07-15 21:38

王琦888

王琦888 - 1234123

学习啦!!!

z***@163.com

z***@163.com

之前一直用cordova,目前公司新项目想试一下DCloud,但是接触了几天发布关于DCloud的文档非常简漏,新建一个H5项目如何本地打包都找不到完美的解决方案!有点失望。

  • DCloud_heavensoft

    http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/38 离线打包在HBuilder的用户群里使用比较普遍,已经很成熟了。如果遇到具体问题,请直接提问

    2016-08-09 21:01

7***@qq.com

7***@qq.com

cordova最好,其他其实都是些利益关系!

  • l***@163.com

    这两天对比了好多,有利益关系的是apicloud和appcan,其他的暂时看不出来

    2018-03-09 10:58

  • l***@163.com

    我这两天也发觉了,总觉得好多做混合app的都很怪,利益关系这四个字真符合

    2018-03-09 10:59

1***@qq.com

1***@qq.com

按你说的是5+优点多。可是,我现在就想用个手机app图片上传功能,想用MUI。
1,用了MUI,不是只引用的页面a标签不能用了,是被打包的整个wap站的a标签都不能用了。
2,用了MUI,只能用Hbuilder打包成app才能用,直接放手机浏览器上js是失效的。
3,调试的时候头部导航栏,title属性设置成false,导航栏依然显示,无法去除。

1***@qq.com

1***@qq.com

嘿! 我都用过phonegap是Adobe公司的其实Cordova也是Adobe公司的但是记住Adobe的产品有一个特点不会懂开发的人也能变成会用最后Adobe将cordova送给了Apache,其实phonegap也是用cordova打包的。

三者之间的区别

h5+属于国内 ,打包app属于云打包,属于webapp支持(indexdb和sqllit)web端量大数据库。不需要什么环境代码编写和性能比较好。比较稳定维护性需要依赖一下框架。使用人类中国,使用人群初级或者中级开发工程师。

phonegap 没有开发基础都能开发 打包基于本地需要cordova进行打包

Cordova本地打包需要安装jdk和sdk,还需要安装xcode不是mac电脑还不好打包成ipa的文件。性能稳定可以配合angular的一个移动端框架ionic进行开发,性能在webapp上目前还没有cordova+ionic打包出来的app性能好出了原生app和google的flutter框架。使用人类全世界。会用人群高级,终极开发人员。

个人顺便想说一下国框架还是可以的,但是说实话,Google的Angular,fiutter等等的一些框架还是很6b的反正比vue吊多了虽然我做了三年的vue开发,知道vue3.0我才绝他不是非常非常的垃圾以前我觉得他比avalon还垃圾现在看来连个都是一样的差不多,毕竟angular是一个前后端都能写的框架没有之一,没错angular前端能写后台也能写,可以了解mean.js这个就是angular写前后端代码的框架我在美国的时候我几个国外朋友都用法,出了中国其实世界上mvvm框架用的最多的是angular。

1***@qq.com

1***@qq.com

有没有小姐姐漂亮的,我想收徒弟

该问题目前已经被锁定, 无法添加新回复