微信小程序第一手实践分享


 2017-01-10 09:56:58       862

转载本文需注明出处:EAII企业架构创新研究院(微信号:eaworld),违者必究。如需下载此文PPT,加入微信群参与微课堂、架构设计与讨论直播请直接回复此公众号:“加群 姓名 公司 职位 微信号”。

目录:

1. 如何理解小程序

2. 小程序如何串联微信

3.个人实践心得

今天是微信小程序正式上线的第一天,从小程序公布、内测到今天,市面上对于小程序众说纷纭,小程序的到来给我们(微信开发)带来了什么,仅仅是又多了一种推广渠道吗?又或者是真的像外界说的那样它将取代APP?今天就和大家分享我个人对小程序的理解以及开发过程中的一些体会。

一、如何理解小程序

张小龙是基于他对未来服务场景——所见即所得的信息交互过程提出的小程序,他认为微信新形式的服务不应当只是停留在原有公众号订阅、推送的基础上;而应当更类似于APP支持一些扩展开发的能力但又无需用户下载安装便能提供信息交互。


小程序对用户来说可以实现用完即走、用户不会在其中有太多的驻留,同时也不会有太多的推送消息对用户形成侵扰。那么接下来我们就从小龙提出的产品理念来看小程序和公众号、APP、传统网站的区别。


相比公众号而言,小程序省去了菜单等形式取而代之的直接是UI操作界面,这使交互过程变得更加直观、便捷;同时小程序可以直接置顶在会话界面(只能1个),使用起来较为方便。但是小程序不支持消息推送,同时在搜索上小程序暂不支持模糊搜索这也就意味小程序在微信内没有入口,而是希望商家通过二维码自行推广,可以看出微信不希望服务商将微信当作应用商店来对待。所以:

从推广角度来说,小程序不如公众号

从用户体验上来说,小程序的形式类似于APP要好于公众号(公众号有些像命令窗口)

和APP相比较,

分发渠道:小程序分发渠道比较单一,只能通过二维码线下分发而APP则可以通过下载链接、应用商店、二维码等进行分发

开发角度来说:开发一套跨平台的APP远大于小程序的开发

用户体验上:小程序是Hybird形式,要优于H5应用但不如原生APP体验好

信息表达上:小程序限定程序大小不超过1M也就意味着信息量不会太大、界面跳转不会太多,因此获取有效信息的效率上小程序较高

所以相比APP,小程序还是略有劣势的,但你无法反驳的是小程序信息的传播效率一定会高于普通APP,因为它是在微信内使用。相信大家和我一样在手机的APP中微信一定是打开次数相当多、驻留时间相当长的一个应用。


对比传统网站而言,传统网站虽然传播、使用便捷,但其不具备APP的特性,所以从移动互联领域来说不具有太大可比性,因为两者形式不是一类。这里之所以列出来是想说明两点:

小程序是可以基于微信内核调用基础的手机本地能力的(拍照)

小程序不同于web的测试OK后能立即发布上线,它需要经过微信审核通过后才能正式上线;因此它不适合于一些以节假日促销活动为主的推广应用。

从APP的最终形态上来,小程序是基于微信内核的微应用,它不能独立运行;

从应用架构上来说看,小程序是Hybird形式。所以从产品体验上小程序介于H5和原生app之间,初次访问时加载速度较H5提升不大;

不过在不关闭的前提下小程序是具有断网缓存使用的能力(我测试A、B两个页面,初次打开A后启用飞行模式后点击跳转可正常跳转到B页面,同时B页面的非网络请求action可以被触发);

从这一点可以看出小程序确实是将编译后的资源下载到了微信客户端内。

开发过程来看,小程序的编码风格接近于html,上手相对容易;在控件及API上局限于微信团队的开发提供,不允许引入第三方js资源也无法集成第三方SDK。


我们尝试了从多个角度去理解微信小程序,现在我们可以回答为什么小程序无法取代APP。

小程序没有独立入口。

小程序没有推送能力,而目前行业内,稳定的消息推送能力已经被视为APP的一个基本能力。

组件及功能的局限,小程序不能引入第三方js也无法集成第三方SDK,这就不适合功能复杂尤其是企业级的APP。

上线须提前提交微信审核(假如京东双11上小程序然后一不小心被拒了…)而APP目前多支持热更新能力。

应用体验不如原生APP。所以微信小程序并不会取代APP,但它给一些研发能力不足的中小互联网企业提供了一种方式使得他们可以更快速便捷的将自己产品、服务通过微信渠道提供;有次看来小程序更像是一种工具。

同样,基于以上几点小程序也不太适合作为企业产品销售、推广的渠道,这也体验了张小龙对小程序是一个提供服务、用完即走的工具的定义。


在小程序没有发布之前,大家很关心小程序的入口问题。小程序在微信内没有入口,可以通过扫码、搜索(目前暂不支持模糊搜索)、好友分享获得;小程序间不能跳转;iOS上使用过的小程序会出现在【发现→小程序】标签组中,此外安卓上还可以把小程序的快捷方式放到桌面,会话界面只能置顶一个小程序即用户一次只能使用一个小程序。

二、小程序如何串联微信

小程序是微信的一个新产品,那作为可能已经开发过公众号服务的企业,我们能不能将公众号和小程序进行串联呢?如果可以,那么在哪些功能点上是可以相互串联的呢?


公众号和小程序做关联我们需要将其绑定到同一个开放平台账号中。

在UI上,小程序无法复用公众号开发的界面,需要重写

后台改造上,小程序后台要求支持HTTPS并且TLS 版本要在v1.2及以上(jdk1.7及以上)

用户关联上,小程序和公众号的用户映射可以通过UnionID机制来对应


我们知道微信公众号一个强大的线下支持点就是近场服务,像门店、连WIFI,目前小程序支持导入公众号中的门店,然而对于我个人最为关心的WIFI功能暂时却无法串联。

本人将小程序二维码的链接信息放到了链接WIFI成功后跳转的URL上,发现并没有用,希望后续小程序能通过连来WIFI启动吧,这样对于服务、推广将有很大的帮助(设想下去饭店点餐,连上WIFI后直接启动点餐小程序…..)

三、个人实践心得

最后和大家分享下鄙人在小程序开发中的一些体会也可以说是槽点吧。

对于屏幕适配,小程序提出了rpx的概念也推荐使用,750rpx=100%宽度,然而在高度上发现按照世面上普遍的16:9的屏幕算,高度全屏的值居然不是整数,最后发现没有一个比较好的设置高度全屏的表示方法(高度设置100%并不能全屏)。

在后台的改造上也是发现iOS下请求正常而安卓异常,最后在轮胎的FAQ中发现官方说:TLS要在v1.2及以上,也就意味着jdk要使用1.7或者更高。


最后吐槽一下关于微信审核上的一些坑,微课堂签到的小程序因为填写微信号,询问用户是否关注普元公众号等内容被拒;可以看到小程序的审核是相当的严格,附上小程序上线审核说明网址:https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=2032443910&docid=c53fb90c11590a1b86c109b4006fae27

最后,总的来说,小程序的到来给企业对客户的服务通道在微信层面又打通了一环。希望小程序后续能开放更多功能(比方说连WIFI启动小程序....)

关于作者:

黄家伟

现任普元移动团队高级研发工程师

在移动安卓开发、微信接入开发、IDE开发领域有比较深的见解。曾参与过移动平台7.1微信构件、实时联调功能的研发。



关于EAII

EAII(Enterprise Architecture Innovation Institute)企业架构创新研究院,致力于软件架构创新与实践,加速企业数字化转型。

eaworld项目(微信号:eaworld,长按二维码关注)


eaworld是EAII的官方微信账号。

相关阅读: