H5和微信小程序的区别

H5泛指移动端网页。

小程序,这里特指微信小程序,微信APP基础上支持的一种应用形式,完全依赖于微信APP环境。

1.运行环境

H5 既然是网页,那么依赖的外壳主要是浏览器,因此只要有浏览器,就可以使用。比如手机内置的浏览器,APP 的 web-view 组件,以及小程序提供的 web-view 组件,都可以打开 H5 页面。

小程序只能依赖微信客户端,也就是说只能在微信里打开。

H5 小程序
运行环境 浏览器,web-view 微信APP
## 2.系统权限

这里的系统权限,可以理解为隐私级别比较高的,如通讯录,或能调用硬件的,比如蓝牙功能等。从这个角度看,H5 本身可以说几乎是没有什么系统权限的。虽然也有摄像头之类的接口,但是重度依赖浏览器能力,兼容性有限。

而小程序,由于依赖微信客户端本身,所以微信小程序团队将客户端的很多能力开放给了小程序环境,当然,前提是你给微信也授权了相关的能力,比如允许访问麦克风,允许访问相册等。

H5 小程序
系统权限
## 3.能力限制

能力限制主要是微信本身做的一些限制。比如分享到朋友圈这个功能,H5在微信里可以直接分享,而小程序方面只能生成带小程序码的图片发送到朋友圈;而扫码功能是双方都支持的,但是微信小程序生成的小程序码是有限制的,微信小程序只能通过调用它提供的接口生成小程序,且部分接口有着数量限额;支付方面,H5支持多种支付方式,小程序只支持微信支付。

H5 小程序
直接分享朋友圈 不能
扫码识别
支付能力 多种 微信支付
## 4.用户体验

H5本质上还是网页,在浏览器里渲染,所以会受到网络、加载图片视频等内容过多等因素的影响,会出现加载缓慢、白屏等现象,体验会差一点。

小程序方面微信客户端对小程序做了解析优化,在首次进入时,会缓存很多资源,所以小程序的使用会流畅很多,接近原生App的体验。

访问入口方面,H5的优点就是可以不依赖于微信客户端,在大部分浏览器都能正常访问,而小程序只能在微信里访问。缺点就是一旦关闭,想要再次访问,只能通过收藏保存书签等方式,小程序则可以通过下拉,我的小程序或最近使用入口进入,更加方便快捷。

H5 小程序
流畅度 一般
入口数量
专属入口

5.用户触达

H5 本身是没有用户触达能力的,如果用户关掉了页面,页面就再也没有办法主动触达该用户了。因此,传统方式都是采用邮件或短信等来触达用户。

后来,我们有了微信服务号,就多了服务号模板消息的触达方式。不管是哪种方式,都是想方设法把链接地址推送给用户,用户点击时再通过手机内置浏览器或微信内置浏览器访问页面。

而小程序天然支持模板消息,虽然有一周的推送时间限制,但是常规的业务已经足够了。只要用户使用你的小程序,你就可以通过某种操作收集 formid,然后即可在一周之内的任意时间触达用户。

H5 小程序
主动触达渠道 短信,APP 推送 微信
## 6.开发成本

对于简单功能,H5 和小程序的开发成本是差不多的,开发模式和语言风格也类似。而对于前面说到的系统能力,可能就只有小程序才能实现,H5 根本做不了。另外,小程序自成体系,因此也有一些现成的组件可以使用,如果刚好覆盖了你的产品功能就能提升效率。

虽然 H5 也有很多框架组件可以用,但由于过于庞杂,有选择成本,且技术栈和 UI可选择性比较多,可能还有融合和修改的成本。而小程序组件的 UI 大部分已经确定,只有很少的部分可以修改,所以一旦认定使用小程序,这部分成本会低很多。

总体上来讲,小程序的开发成本要低一些。

H5 小程序
简易功能成本
系统功能成本
## 7.迭代周期

H5的话是可以随时发布,不用受任何牵制。而小程序的特点,就是每次提交版本都要经过微信方面的审核,且审核时间的长短很随机,如果项目着急上线就没什么办法。

H5 小程序
跌代周期
## 8.外部限制

H5 页面可以不用搞 HTTPS,有台服务器就可以。但是小程序,从后端开始就有限制,要求域名备案+HTTPS。

另外,小程序对文件大小也有限制,虽然现在已经支持分包加载,但是在文件大小方面,H5 本身是没有什么限制的。只是实际开发的时候,要照顾用户的体验,不能让页面打开太慢。

H5 小程序
外部限制 较少

用哪个更好?

  1. 纯推广的内容,用H5足够,小程序反而不利于传播(不能分享朋友圈)

  2. 内容(文字图片)较多的页面,用H5,小程序调用资源文件更复杂

  3. 视觉和交互效果复杂的页面,用H5,小程序对动效的限制较多,且引入第三方特效库困难

  4. 迭代次数较频繁的页面,用H5,小程序审核时间不固定

  5. 需要使用多种支付方式的页面,用H5,小程序只支持微信支付

  6. 需要调用系统功能的页面,微信客户端提供了一些需要的系统功能调用

  7. 需要结合线下体验的页面,用小程序,因为小程序一次进入后,可以随时再次调用(微信对话列表下拉),且小程序码更显眼,扫码也更流畅

  8. 长期低频次使用的工具,用小程序

  9. 涉及与服务器大量数据交互的,用小程序,因为其API接口更安全,效率也更高

    ….

tip

微信小程序开发文档