微信小程序开发微信小程序开发者小程序开发技术知识

小程序如何区分转发好友和转发群

2018-03-07  本文已影响1155人  连胜老师

知晓程序员,专注微信小程序开发的程序员!

前言:群内隔段时间就有同学问,小程序的转发,是否可以区分转发给好友,还是转发给微信群,今天给大家说说如何区分。顺便说一下限群成员可见功能如何实现~

这个问题,要区分一下分享之前和分享之后就好办了。

当小程序分享之前,小程序无法区分到底是分享给了好友,还是分享给了微信群。也就是说,你想在分享之前去做些事情,这是不可以的,做不到~

分享之后,有间接的办法来知道小程序卡片分享的是好友还是群,先看一下截图:

(重要通知小程序)

我们今天主要来说说,分享后是如何对好友卡片和群卡片的。实现思路:通过场景值来判断~

(小程序场景值)

小程序官方给的场景值,已经对单人聊天会话群聊天会话做了区分,如上图。

我们可以在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》

往期回顾

1.微信小程序开发常见问题(六)

2.微信小程序开发常见问题(五)

3.微信小程序开发常见问题(四)

4.微信小程序开发常见问题(三)

5.微信小程序开发常见问题(二)

知晓程序员,一个专注于微信小程序开发的程序员~

如果对小程序技术感兴趣,欢迎勾搭连胜老师,微信:13718712821,备注知晓程序员哦,欢迎讨论问题 & 一起探讨小程序人生~~

扫描下方二维码,关注知晓程序员,实时了解小程序动态 & 小程序开发相关内容~

上一篇下一篇

猜你喜欢

热点阅读