知晓程序员,专注微信小程序开发的程序员!
前言:群内隔段时间就有同学问,小程序的转发,是否可以区分转发给好友,还是转发给微信群,今天给大家说说如何区分。顺便说一下限群成员可见功能如何实现~
这个问题,要区分一下分享之前和分享之后就好办了。
当小程序分享之前,小程序无法区分到底是分享给了好友,还是分享给了微信群。也就是说,你想在分享之前去做些事情,这是不可以的,做不到~
分享之后,有间接的办法来知道小程序卡片分享的是好友还是群,先看一下截图:
(重要通知小程序)
我们今天主要来说说,分享后是如何对好友卡片和群卡片的。实现思路:通过场景值来判断~
(小程序场景值)
小程序官方给的场景值,已经对单人聊天会话和群聊天会话做了区分,如上图。
我们可以在app.js里面的onLaunch方法或者onShow方法获取到场景值:
拿到值之后,你可以保存全局变量,或者写入本地缓存,在相应的page.js里面去做判断,如果是群聊,显示群聊界面,如果是私聊,显示私聊界面。
上面只说了如何区分群聊还是私聊,那么仅限某个群可见这功能又如何实现呢?
思路:分享小程序卡片之后,获取到群id,当群用户点击群内小程序卡片时,也会获取一个群id,这两个群id相同,则表明是同一个群;没有获取到群id,表明不是从群聊中打开小程序卡片;两个群id不同,则表明不是同一个群~
上面已经说了,有两种场景可以获取群id
第一:小程序卡片分享到群聊中。分享完成之后,有个分享成功的回调方法,可以在此方法中获取到shareTickets
拿到shareTickets之后,可以调用wx.getShareInfo,获取解密gid会用到的向量和加密值,传给服务端进行解密(小程序中所有的解密操作,都放在服务端进行)。
注:上面成功回调时,res.shareTickets是个list,因为分享给好友和群的时候,可以多选,最多选9项~
第二:从群聊中打开小程序卡片时。从群中打开小程序卡片,会在app.js里面的onLaunch方法和onShow方法中获取到shareTickets
拿到shareTickets之后,去服务端解密~
相信大家也有看到过,有些小程序做了群排行榜功能吧。实现方式,也是同样的道理~
《END》
往期回顾
知晓程序员,一个专注于微信小程序开发的程序员~
如果对小程序技术感兴趣,欢迎勾搭连胜老师,微信:13718712821,备注知晓程序员哦,欢迎讨论问题 & 一起探讨小程序人生~~
扫描下方二维码,关注知晓程序员,实时了解小程序动态 & 小程序开发相关内容~
网友评论