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

作者: 连胜老师 | 来源:发表于2018-03-07 23:24 被阅读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,备注知晓程序员哦,欢迎讨论问题 & 一起探讨小程序人生~~

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

    相关文章

      网友评论

      • c0be45e18dd4:老师,那能否知道我的小程序分享过给哪个人?

      本文标题:小程序如何区分转发好友和转发群

      本文链接:https://www.haomeiwen.com/subject/yofefftx.html