时间: 2020-08-23|16次围观|0 条评论

PS: 2018年10月10日起新提交的版本,用户从小程序小游戏中分享消息给好友时,开发者将无法获知用户是否分享完成,也无法在分享后立即获得群ID。请参考调整指引

下面内容可以忽略不看了

微信小程序判断是否转发到群聊 (监听接口已关闭)插图
微信小程序转发

本文中提到的所有api的官方文档地址 https://developers.weixin.qq.com/miniprogram/dev/api/share.html

微信小程序在小程序内转发的方式有两个,分别是 和页面右上角的转发,两种转发都会调用 Page.onShareAppMessage(options)。

要判断是否转发到群聊,需要使用用 wx.showShareMenu(OBJECT),并且参数withShareTicket为true。wx.showShareMenu({ withShareTicket: true})。转发成功后,Page.onShareAppMessage() 的回调会返回shareTickets,可以通过转发成功的回调判断是否转发到了群聊。
如果需要获取转发的详细信息,可以使用 wx.getShareInfo(OBJECT),需要参数shareTicket,shareTicket 就是转发成功后的回调的 shareTicket 。wx.getShareInfo(OBJECT)的回调会返回errMsg(错误信息)、encryptedData(包括敏感数据在内的完整转发信息的加密数据)、iv(加密算法的初始向量)。

下面是是完整代码

onShareAppMessage(res) {                        //转发时携带 shareTicket才能在回调中获取到shareTickets        wx.showShareMenu({            withShareTicket: true        })        return {            title: '转发时显示的标题',            path: '转发的页面路径',                        success: res => {                console.log('--- 转发回调 ---', res);                //onShareAppMessage回调的shareTickets,如果没有,就说明不是转发到群聊的                console.log('--- shareTickets ---', res.shareTickets);                //转发到群里的才会有shareTickets                if (res.shareTickets && res.shareTickets[0]) {                    //获取转发的详细信息                    wx.getShareInfo({                        shareTicket: res.shareTickets[0],                        success: res => {                            console.log('--- 错误信息 ---', res.errMsg);                            console.log('--- 包括敏感数据在内的完整转发信息的加密数据 ---', res.encryptedData);                            console.log('--- 错误信息 ---', res.iv);                        },                        fail: error => {                            console.log('--- getShareInfo fail ---',error);                        }                    })                }            },            fail: () => {                console.log('--- 转发失败 ---', path);            }        }    }
下面是转发到个人和群聊的日志打印
微信小程序判断是否转发到群聊 (监听接口已关闭)插图1
转发给个人时的日志

可以看到,转发给个人时,转发的回调只有errMsg。

微信小程序判断是否转发到群聊 (监听接口已关闭)插图2
转发到群聊时的日志

转发到群聊时,转发的回调多了shareTickets。所以,可以通过是否有shareTickets来判断是转发给个人还是群聊。

END

文章转载于:https://www.jianshu.com/p/03bd32736bf3

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《微信小程序判断是否转发到群聊 (监听接口已关闭)
   

还没有人抢沙发呢~