王者荣耀群小程序分享卡片后获取信息的基本思路
发表时间:2023-09-06 10:40:57
文章来源:炫佑科技
浏览次数:245
菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技
王者荣耀群小程序分享卡片后获取信息的基本思路
我们在一些微信群里看到过这样的小程序分享卡片:当你点击进去时,你会看到一个列表,上面有其他群成员的头像和相关信息。 比如《王者荣耀团体排行榜》,但排行榜信息是腾讯私有接口,我们只能获取头像、昵称等基本信息。
接下来我将在小程序端实现用户点击卡片后从转发到获取信息的流程。
基本想法开始
首先,我们需要调用wx. 设置王者荣耀群小程序分享卡片后获取信息的基本思路,启用是否使用带转发,这个是开发组功能的关键:
wx.showShareMenu({ withShareTicket: true, })
我通常把它放在页面上。
触发转发事件
如果你想自定义前进按钮而不是右上角默认的前进按钮,则需要在页面上放置一个 open-type="share" 组件:
接下来在页面设置分享功能:
onShareAppMessage: function (res) { if (res.from === 'button') { // 来自页面内转发按钮 console.log(res.target) } return { title: '自定义转发标题', path: '/pages/test/test?id=123', success: function (res) { // 转发成功 console.log(res) // 只有转发到群聊中打开才可以获取到 shareTickets 返回值,单聊没有 shareTickets if (res.shareTickets && res.shareTickets.length>0) { app.getShareInfo(res.shareTickets[0]) } }, fail: function (res) { // 转发失败 console.log(res) } } }
您现在可以转发,您会在群聊中看到本次分享的小程序消息卡。 每个对应每个组,单聊不会有这个值。 这里只选择了一个转发微信小程序开发论坛,所以直接取**个。 至于功能应用程序。 用于获取组id(),我们稍后介绍。
团体会员积分留言卡
当群成员点击消息卡进入小程序时,可以在app.js的/中获取,而且每次都不一样。 当你分享分数的时候,你得到的和你这里得到的不一样,但是会对应到一样的。
应用程序.js:
// 在onShow中获取转发信息shareTicket onShow: function (options) { console.log(options) let scene = options.scene // 场景值是1044,带 shareTicket 的小程序消息卡片 if(scene == 1044) { let shareTicket = options.shareTicket // 这里的id根据自己的具体需求进行操作,也可以设置其他的 let id = options.query.id this.getShareInfo(shareTicket) } }, // 获取加密信息encryptedData, iv getShareInfo: function (shareTicket) { const z = this wx.getShareInfo({ shareTicket: shareTicket, success: function (res) { console.log(res) let {encryptedData, iv} = res if(encryptedData && iv) { z.getDecodeEncryptedData(encryptedData, iv) } }, fail: function (res) { console.log(res) } }) }, // 获取解密后的信息 getDecodeEncryptedData: function (encryptedData, iv) { // 发送到后台解析 wx.login({ success: function(res) { let code = res.code // 下面只是演示代码 // post({ // url:'/controller/getDecodeEncryptedData' // data:{ // code, // encryptedData, // iv, // } // }) } }) },
首先我们通过wx.得到和iv,然后传给后台进行解析。
在ta中,后台分析成功后,会返回一个。
此时,群组和用户就可以进行绑定了,并且这个绑定信息也必须在后台保存。 如果后台还没有保存头像昵称信息,此时后台也可以保存用户头像和昵称。
类似如下的界面:
// 下面只是演示代码 post({ url:'/controller/bindGroupAndUser' data:{ code, openGId } })
其中的代码是通过调用wx.login获取的,后台可以根据这个代码获取。 然后绑定。
然后根据自己的需求,可能会有一个保存用户基本信息和拉取群组成员信息列表的接口。
基本思路就是这样,我会在另一篇文章中介绍后端的相关处理。