我是一名安卓程序员,以前没有接触过前端开发,直到有幸接手了公司的小程序项目。小程序学起来还是很快的,对于有编程经验的人,看着示例代码,对照着官方文档,几天就能上手了。自从接触了小程序,一直想做一个自己 ...
我是一名安卓程序员,以前没有接触过前端开发,直到有幸接手了公司的小程序项目。小程序学起来还是很快的,对于有编程经验的人,看着示例代码,对照着官方文档,几天就能上手了。
自从接触了小程序,一直想做一个自己的东西,要是每天有点人用就更好了。
有一天和我家宝宝玩成语接龙,突然想到,我可以做一个成语接龙的小程序啊!
产品琢磨了两天,大概想做成这样:
接龙可以有「所有人可参与」、「指定群成员参与」等类型
不校验是否是成语,否则就无法使用「印贼做父」了
成语的读音,还是要校验一下的
难免会有人乱填,所以每条成语可以赞,也可以踩
在有一定数据量后可以增加排行榜
设计想法有了,还有两件比较棘手的事:
起个牛逼的名字
求我家宝宝给我画设计图
我想过很多名字,「成语接龙吧」、「接下去」、「接吧」、「接一个」...
宝宝:low 爆了,叫「碰词」,碰也有接的意思,成语也是个词嘛
这么 6 的名字居然有人先想到了,于是最终决定用「碰词er」
随便放两张设计图,美如画啥的就不说了:
下面说一下在开发方面,几个我认为值得一提的地方。
获取用户信息现在大部分的小程序都是一打开,就弹出用户信息授权框,有的甚至强制需要授权才可使用。我之前做的一个也是需要拿到 unionId 去登录才能使用的,为此我还写过一篇文章说明如何实现。
但显然,微信认为这是一个很不好的体验。在用户没有接触你的小程序之前,凭什么要信任你,把自己的用户信息暴露给你。
为了规范用户信息的获取,官方出了这篇文章:获取用户信息方案介绍(FAQ 里面有两个问题还是我提的)
刚好拿这个小程序来实践一下。
首先,明确什么情况下需要用到用户信息。这里需要用户信息显示在成语旁,所以在创建接龙或者发送成语之前,需要先获取到用户信息。如果你只是进来看看,是不需要你任何授权的,只有点击了创建接龙的按钮,或者发送成语的按钮,才会弹出授权提示框。
我是这样做的。没有用户信息时,设置 button 的 open-type 为 getUserInfo,点击会触发用户信息的获取。要是已经有用户信息了,则是一个普通的跳转按钮:
<view class="create-button"> <button wx:if="{{hasUserInfo}}" class="button" bindtap="navigateToCreate"> <image class="img" src="/images/icon_add.png" mode="aspectFit"/> </button> <button wx:else class="button" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> <image class="img" src="/images/icon_add.png" mode="aspectFit"/> </button> </view>当用户确定授权了,可以在 bindgetuserinfo 绑定的方法里,用 e.detail.userInfo 拿到用户信息。
但还有个问题,open-type="getUserInfo" 要到基础库 1.3.0 才能用,最好还是做一下低版本兼容处理。
群能力目前,小程序已经支持获取到微信群的群 id 和显示群名。
当用户创建的接龙类型是指定群成员参与时,指定的群就是第一个转发到的群。而成员也只有通过这个群的分享进入小程序,才可参与接龙。下面说说这两种情况是如何获取到群 id 的。