新闻中心 • NEWS
微信小程序的使用越来越多,很多人在开发移动应用时,把它理解为H5,其实呢,H5和微信小程序并不是一回事。我们经常说的 H5 是一种不标准的叫法,H5是一系列制作网页互动效果的技术集合,即H5就是移动端的web页面,也是HTML的高级版本。大家说得最多的 H5 主要是指用在移动端的网页,其实 PC 电脑版也一样可以使用 H5 技术。而微信小程序,是在微信 APP 基础上支持的一种应用形式,完全依赖于微信 APP 环境。只是很多移动端的场景下,这两种方式开发的应用都能实现产品的大部分功能,加之他们都是在移动端应用,就更分不清了。
H5是网页的一种形式,那么依赖的外壳主要是浏览器,因此只要有浏览器,就可以使用。比如手机内置的浏览器,APP 的 web-view 组件,以及小程序提供的 web-view 组件,都可以打开 H5 页面。但是微信小程序只能依赖微信客户端而生存,也就是说只能在微信里打开。那么,如果你的应用需要通过短信通知用户带上访问地址,就无法用小程序实现了。而 H5 页面,则可以在短信正文中直接用手机内置浏览器打开。比如支付方面,小程序只支持微信支付,而 H5 里可以选择使用其他支付平台提供的支付方式,比如支付宝等。一些功能是微信本身的发展策略限制的,比如 H5 在微信里可以直接分享朋友圈,而微信小程序目前就只能转发好友或群。对于朋友圈,就只能生成带小程序码的图片发到朋友圈。而对于分享到好友或群,小程序又提供了卡片式的分享界面,看起来很高端,信息也多,并且能追踪用户行为。这一点,H5 又无法做到。除了形式上的体验差异,性能上也是有差异的。小程序基于微信客户端实现,对内置进行了优化,并且首次打开小程序后,就直接缓存很多资源。因此,在使用小程序时可以明显感觉比较流畅,接近原生 APP 的体验。而 H5 本质上还是网页,和在 PC 上浏览网页没多大区别,每次要请求各种图片样式资源,在浏览器内核里渲染,因此体验上会稍微差一些。
如果我们想开发移动端的应用,需要注意这两点不同:
第一:是运行环境的不同
传统的H5的运行环境是浏览器,包括web-view,但微信小程序的运行环境并非完整的浏览器,这里的是“非完整的浏览器”有以下2个原因:
1、 小程序的开发过程中会用到HTML5相关的技术(但并非全部);
2、 小程序最后的发布上线需要微信审核,微信在不更新自身软件的情况下可以将小程序更新到自身系统内,这就让我们想到了React Native框架,有开发者在微信开发工具源码中发现使用了React和NodeWebkit库;
所以小程序的运行环境很有可能是微信基于浏览器内核重构的一个内置解析器,针对小程序专门做了优化,配合自定义的开发语言标准,使小程序提升了性能。
第二:开发成本的不同。
当我们需要一个H5开发需求时,我们需要考虑的是微信团队提供了开发者工具,并且规范了开发标准,前端常见的HTML、CSS变成了微信的WXML、WXSS,WXML中尽管全部是自定义标签,但官方文档中都有明确的使用介绍,相信上手应该是非常容易的;WXSS、JSON和JS文件中的写法稍有限制,但整体相差不多。在有了这些标准之后,作为一个开发者,自己只要写程序就可以了:
当需要数据缓存时,调用本地存储API;
当需要调用后端接口时,调用发起请求API;
UI库方面,框架自然带有自家weui库加成;
引入地图、使用罗盘、调用支付、调用扫码等等功能都可以直接使用;
当需要上传下载时,调用上传下载API;
并且在使用这些API时,你不用再去顾虑浏览器兼容性,不用担心生产环境中出现不可预料的BUG,所以微信小程序的开发成本确实相比以往的web开发要低一些。