开发 | 再不这样做,你的小程序就无法通过审核了!
文 | 花叔
7 月 26 日,小程序官方发布了两个新变动,其中一个变动是关于「获取用户信息的授权机制」的。
这次变动的意义,其实比我们想象中大。虽然晚了点,知晓程序(微信号 zxcx0101)还是想给大家解读一下,这次的更新的具体内容。
关注「知晓程序」公众号,在微信后台回复「开发」,获取小程序开发技巧精选文章。
微信改动了什么?
官方对这次变动的概括为:
为改善用户体验,现有小程序获取用户信息的方式将进行升级,开发者需在页面中放置按钮,用户主动点击后才可获取用户的头像昵称等信息。可提高用户授权成功率,同时支持用户多次点击重新授权。
这是什么意思?简而言之就是说:以后能通过点击页面某个自定义按钮去触发用户信息授权弹框。
关注「知晓程序」微信公众号,回复「0807」,手把手教你用新方法获取用户资料。
这是获取用户资料方式的补充方案,但问题来了,为啥官方的描述是「需在页面中放置」,为什么是「需」?是以后只能用这个新方案吗?
如果真是这样,那么事情就有点大了……
会影响什么?
首先对已经在线的小程序来说,这个更新影响不大。因为官方说了「这个变动对目前在线的小程序不限制」。
但言外之意,是说:新上线的小程序就得这么做。也就是说,除非你的小程序从此不迭代了,不然你一定得接受这个改变。
那么这个不得不迎合的变动,到底会给现有小程序带来怎样的影响呢?
确实如官方所说,用户体验会改善。因为在大部分场景下,「授权获取用户信息」的交互体验会变成「按需授权」。
什么意思?这是怎么体现出体验得到优化的?
在说明这个问题前,我们不妨看看目前大部分小程序的授权体验是怎样的。目前的小程序中,大体有两种请求获取授权的方式。
1. 直接弹授权确认弹框
包括 Nodes 在内的许多小程序,在首次进来的时候,不管需不需要用到用户信息,都统一直接就弹出一个授权弹框。
授权后,小程序会直接获取并存储用户的头像和昵称等信息,以便后续使用。
这种交互下,点击「允许」是不会有问题的。但个别小程序在用户拒绝授权后,不会做兼容处理。
也就是说,当用户拒绝授权时,有些小程序会直接报错,甚至没法用。(Nodes 很早意识到这个问题,早已做了兼容处理。)
2. 循环提示迫使用户授权
典型的例子是「腾讯投票」。它的做法是:只要用户拒绝授权,就跳到设置页,直到用户授权了才能继续操作。
在这种情况下,用户拒绝授权,就会进入一个循环。只有在用户授权后,小程序才能终止这个循环。
显然,小程序官方觉得这两种交互都不是最好的交互。在他们看来,授权获取用户资料最好的体验应该是:需要用户资料的时候才发起授权操作。
目前市面上做到类似交互的小程序并不多。这里介绍一下我们团队做的「王者荣耀赛事」小程序。
关注「知晓程序」微信公众号,回复「王者」,获取王者荣耀相关小程序推荐。
在小程序发布之初,我们已经考虑到了这点,也已经将「按需授权」实现了。
用户在这个小程序里,只有在评论的时候才需要进行授权(因为留言需要显示昵称),所以只有在点击「发送」按钮的时候,才需要调起授权操作。
当然了,是「一开始就调起用户授权」,还是「需要的时候再去调起」,这两种方式谁更好,我也不敢下定论,但是小程序官方目前认为,最好的是后者。
为什么要这么做?
那么问题又来了,「王者荣耀赛事」小程序很早就做了这个优化。也就是说,即使小程序官方不发布这次的新变动,用现成的方法,也能做到一样的效果。
于是,有同学可能就有疑问了:为啥官方还要这么做?
我在这里斗胆猜测一下:微信团队发布这个变动,是希望规范市场。
小程序发布之初,好多事情很难面面俱到,有一些事情没想太清楚是情有可原的。
像用户获取信息的这个鉴权机制,其实一开始就有些问题,于是无意间会导致目前市面上的小程序,没有按照官方所认为是最好的体验方式出现。
当官方意识到问题、想要让所有小程序回归到他认为对的交互方式上时,它需要「一个台阶」和「一个手段」去纠正这个问题。
所以,你们看到这里,应该知道为啥我在文章开头的时候,就说了这个变动的意义很大。因为这体现了小程序官方在纠正错误时的态度以及执行力,真心点个赞。
那么现在大家应该知道,解决这个问题的「一个台阶」是什么了吧。
是新组件的特性。通过它,微信团队可以从正面诱导开发者进行技术迭代,来纠正过错。
那么,「一个手段」又是什么?
可能有同学已经猜到了。没错,就是审核。
官方发公众号文章时,内容仅仅只有 10 来行字。但你们不知道的是,其实在官方的开发者社区里,微信团队同步发布了一个公告:《获取用户信息方案介绍》。
值得注意的是,在公告的末尾,有一段很重要的话:
为了给用户提供更好的小程序环境,我们约定在一段时间后(具体时间会做通知),若还出现以下情况(包括但不限于),将无法通过审核
- 初次打开小程序就弹框授权用户信息。
- 未处理用户拒绝授权的情况。
- 强制要求用户授权。
已经上线的小程序不会受到影响。
官方很果断,很坚决,意思就是说:开发者们,你们赶紧切换交互吧,不然没法更新了。
然而,如果官方说的「初次打开小程序」包括从所有内页的打开,那么这个还是有一定工作量的。
所以这段话里,有一个不定条件:「我们约定在一段时间后」。花叔猜,官方应该是在看市场反应吧,毕竟这个改动可不小哦。
反正,作为开发者的我们,应该赶紧行动起来,换上新机制。毕竟这也确实是个必须纠正的错误。
微信小程序团队一直在很用心地规范整个市场,他们既服务于开发者也服务于普通用户,从这次举措可以看得出,他们想事情特别细心,也特别有条理。
我们也应该支持一下吧!
关注「知晓程序」公众号,在微信后台回复「开发」,获取小程序开发技巧精选文章。