小程序分享(带参数识别信息),分享到群、好友的判断

场景描述

1.点击分享,判断是右上角分享,还是页面点击分享
2.分享了之后,判断是分享到群还是个人
3.用户点击分享的内容进来,然后进行其他操作如统计信息

效果图

1.分享群:
在这里插入图片描述
在这里插入图片描述
2.同样分享到个人
在这里插入图片描述

代码:
index.js
const app = getApp()
Page({
  onLoad: function(e) {
    //分享
	wx.showShareMenu({
      withShareTicket: true,
      success: function(res) {
        // 分享成功
        console.log('index.js>>onLoad():showShareMenu');
        console.log(res);
      },
      fail: function(res) {
        // 分享失败
        console.log(res)
      }
	 });
	 
	//点击分享的面板进入的小程序
    if (e && e.userShare) {
      console.log("加载e对象");
      console.log(e);
      console.log("加载e对象中userShare");
      console.log(e.userShare);
      //转化json为对象
      let userShare = JSON.parse(e.userShare);
      console.log("对象中userShare.openId");
      console.log(userShare.openId);
      console.log("对象中userShare");
      console.log(userShare.nickName);
    }
 },
  //接口:分享功能
  onShareAppMessage: function(res) {
    var vm = this;
    if (res.from === 'button') {
      console.log("onShareAppMessage()==>>来自页面内转发按钮");
      console.log(res.target);
    } else {
      console.log("onShareAppMessage()==>>来自右上角转发菜单")
    }
    //自定义信息
    let sendinfo = {
      openId: "111", //分享人的openId
      nickName: "艾弗森", //分享人的昵称
    }
    let str = JSON.stringify(sendinfo);
    return {
      title: sendinfo.nickName + '分享了小程序"Allen Iverson"',
      path: 'pages/index/index?userShare=' + str,
      imageUrl: "../img/ai1.jpg",
      success: function(res) {
        console.log("分享success()");
        console.log("onShareAppMessage()==>>转发成功", res);
        //分享的是群还是个人
        app.setInfo(res);
      },
      fail: (res) => {
        console.log("onShareAppMessage()==>>转发失败", res);
      }
    }
  },
  })
app.js

App({
//接口:分享群或者个人
  setInfo: function(res1) {
    var vm = this;
    wx.getSystemInfo({ //获取设备信息
      success: function(d) {
        console.log("获取设备信息");
        console.log(d);
        //判断用户手机是IOS还是Android
        if (d.platform == 'android') {
          wx.getShareInfo({ //获取群详细信息
            shareTicket: res1.shareTickets,
            success: function(res) {
              //这里写你分享到群之后要做的事情,比如增加次数什么的
              //查询群的信息
              console.log("getShareInfo()>>android>>");
              console.log(res.encryptedData);
              console.log(res.iv);
              wx.showModal({
                title: '提示',
                content: '分享群成功',
                success: function(res) {
                  if (res.confirm) {
                    console.log('用户点击确定')
                  } else if (res.cancel) {
                    console.log('用户点击取消')
                  }
                }
              })
            },
            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('用户点击取消')
                }
              }
            })
          }
        }
      }
    })
  },
})

分享之后,到群里的展示图如下:
在这里插入图片描述
其他人点击分享的面板,进入小程序,看看获得的信息:
在这里插入图片描述
获得信息中包含了,之前自己填写的信息!!!
到这里,分享功能就结束了!留言区等你哦!!!

获取群openGid并且展示群信息在我的这篇文章中:https://blog.csdn.net/qq_40670946/article/details/82843879

  • 6
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值