微信小程序一个不起眼却差点栽跟头的大坑!!

从微信小程序公测以来,我便第一时间接触并开发。两年期间开发了也有100来个大中小产品了吧。

以我的微信小程序开发经历,什么大风大浪没遇到,什么神级bug没碰过。然而今天所讲的这个“坑”却是也许很多开放者也会忽略的。

前阵子给一个大型集团开发了一款内部活动使用的微信小程序。开发过程很顺利,产品以及开发难度也属于我驾轻就熟的那一类。

然而在上线使用的第一时间就遇到了挑战。这款产品需要我个人到现场教会几位重要的用户去使用。然而当我碰到产品的第一个真实用户时却极其尴尬的发现:

她扫描小程序码后并没有任何反应,完全看不到首屏界面。

事发突然而且始料未及,这导致接下来大概10分钟内我只能无头苍蝇一般调试业务逻辑还是后端数据,都完全无果。

不过幸运的是,第二个用户刚好到来并能很正常的完成逻辑。这个对比让我开始往手机和系统的问题上思考。打不开的第一个用户的手机是一款iPhone6,我于是问了一下用户的微信是不是很久没更新,果然得到肯定答案。继而微信一查版本:6.5.9 (记忆可能有差)。

大概查了一下微信的版本更新的时间节点,发现该版本的微信意味着这位用户的手机已经超过一年没更新了,甚至是微信推出小程序半年内的版本。

熟悉的开发者都知道,微信小程序在前半年里极其的不稳定,伴随着各种各种的bug和兼容问题。而我确实也在这款小程序里使用了一个比较新的第三方SDK--即便不是如此,小程序后来更新的一些组件和API也会因为微信版本过低导致业务逻辑的报错从而影响页面渲染。

其实,每个微信版本都有一个微信小程序的基础库。在微信小程序的开发者管理后台有一个可以选择微信小程序最低基础版本库的选项,这正是为了去协调微信低版本的兼容问题。

并且还能在后台看到对应基础库影响的用户比例,可以避免一下子影响到大部分用户。

而在开发过程也可以在开发者工具的设置里选择基础库进行预览和调试。开发阶段选择不是最新的基础库,可以有助于尽早发现问题避免遇到上线后报错的情况。

经过设置后,当用户的微信版本里的小程序基础库低于后台设置的最低的小程序基础库时,小程序界面不会报错而是提示用户该更新小程序版本了。相比起直接报错的不知所措,这算是更优雅和友好的提示。

就是这么一个相对显眼的设置,只不过通常很多开发者会忽略。究其原因也是因为很多小程序开发完上线后的实际用户量有限,基数不大的情况下难以发现这么个不起眼的“bug”。但经过这次小“事故”,我也算是填了一次免不了要踩一次的坑。