微信小程序判断分享的是群还是好友

最近比较流行的答题小程序通常会有这么一个功能,分享到群增加答题次数,分享到好友无效,那么问题来了,我们如何能够判断用户分享到的是群还是好友呢?

通过查找API文档我发现会有这个一个东西withShareTicket 通过这个来判断是否分享到的是群还是好友,想要获取到这个需要这onShow方法里填加一个东西

//设置分享获取shareTicket
        wx.showShareMenu({
            withShareTicket: true,
        })

只有设置了这个等于true才能够获取到群信息。但是问题又来了IOS系统和Android系统的判断方式是不一样的,我来说一下他们两个的区别:

这个函数作用是你在分享到微信群之后可以获取shareTickets

通过wx.getShareInfo()shareTickets,可以获取到分享群的加密过的信息。

这里要注意下如果分享的是个人android仍然可以获取到shareTickets

ios分享到个人是获取不到shareTickets的。

如果是ios你可以在直接用if()判断shareTickets是否存在判断是否转发的是微信群。

如果是android你要执行wx.getShareInfo()函数,如果是微信群就会调用success,不是微信群就会调用fail

必须调用wx.getshareInfo()获取群信息 包括 iv、encryptedData(换取openGId)

现在上一下完整的代码:

    //分享
    onShareAppMessage: function (res) {
        let that = this
        return {
            title: '分享的标题',
            path: '分享的页面链接',
            success: function (res) {
                //getSystemInfo是为了获取当前设备信息,判断是android还是ios,如果是android
                //还需要调用wx.getShareInfo(),只有当成功回调才是转发群,ios就只需判断shareTickets
                //获取用户设备信息
                wx.getSystemInfo({
                    success: function (d) {
                        console.log(d);
                        //判断用户手机是IOS还是Android
                        if (d.platform == 'android') {
                            wx.getShareInfo({//获取群详细信息
                                shareTicket: res.shareTickets,
                                success: function (res) {
                                    //这里写你分享到群之后要做的事情,比如增加次数什么的
                                },
                                fail: function (res) {//这个方法就是分享到的是好友,给一个提示
                                    wx.showModal({
                                        title: '提示',
                                        content: '分享好友无效,请分享群',
                                        success: function (res) {
                                            if (res.confirm) {
                                                console.log('用户点击确定')
                                            } else if (res.cancel) {
                                                console.log('用户点击取消')
                                            }
                                        }
                                    })
                                }
                            })
                        }
                        if (d.platform == 'ios') {//如果用户的设备是IOS
                            if (res.shareTickets != undefined) {
                                console.log("分享的是群");
                                wx.getShareInfo({
                                    shareTicket: res.shareTickets,
                                    success: function (res) {
                                        //分享到群之后你要做的事情
                                    }
                                })

                            } else {//分享到个人要做的事情,我给的是一个提示
                                console.log("分享的是个人");
                                wx.showModal({
                                    title: '提示',
                                    content: '分享好友无效,请分享群',
                                    success: function (res) {
                                        if (res.confirm) {
                                            console.log('用户点击确定')
                                        } else if (res.cancel) {
                                            console.log('用户点击取消')
                                        }
                                    }
                                })
                            }
                        }

                    },
                    fail: function (res) {

                    }
                })
            }

        }
    },

这里说一下分享到群的话,需要把返回的 iv,encryptedData,传给后台换取openGId(群ID)。

好了,今天就整理这么多了,感觉我的判断逻辑不是很严谨,欢迎来指出,大家一块学习。

 

想要获得更多资料的  请微信搜索公众号 【热血科技】,关注一下即可。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值