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

场景描述

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

参考资源链接:[Python实现微信小程序自动签到与抓包分析](https://wenku.csdn.net/doc/4wy300apik?utm_source=wenku_answer2doc_content) 在实现微信小程序的自动签到功能时,首先需要对微信小程序的API进行抓包分析,以获取签到请求的详细信息,包括API地址、请求参数以及token等验证信息。这一步骤通常需要使用到抓包工具,例如Fiddler或Wireshark,来监控网络请求并捕获相关数据。一旦获取到这些信息,就可以使用Python中的requests库来模拟请求,实现自动签到。 具体实现步骤如下: 1. 使用抓包工具获取小程序签到的API请求地址必要的请求头信息。这通常包括User-Agent、Referer等,以确保请求能被服务器正确识别。同时,注意从请求中提取任何token或其他加密验证信息,这些是进行身份验证的关键。 2. 使用requests库构建HTTP请求。对于GET请求,可以使用`requests.get()`方法;如果需要提交数据,则使用`requests.post()`方法。在这个过程中,将步骤1中获取的请求头、参数以及token等信息作为参数传递给requests方法。 3. 发送请求后,需要处理服务器的响应。服务器返回的数据通常为JSON格式,可以使用`response.json()`方法解析。然后根据返回的JSON数据中的特定字段判断签到是否成功。 4. 如果签到成功,并希望将结果反馈到微信中,可以使用itchat库来完成这一操作。通过itchat登录微信后,可以发送消息到指定的微信好友。 在编写代码时,特别需要注意异常处理错误管理,确保程序在遇到网络波动、API变更等异常情况时能稳定运行。同时,考虑到多账号管理的需求,可以引入多线程或异步编程技术,提高签到效率。 这份任务的实现,不仅要求编程者对Python语言网络编程有扎实的了解,还要求对微信小程序的API有一定的研究。如果你希望更深入地了解如何使用Python结合抓包工具来实现微信小程序的自动签到功能,建议参考《Python实现微信小程序自动签到与抓包分析》一文。本文不仅详细讲解了自动签到的整个流程,还提供了实际操作的代码示例抓包分析的详细步骤,是解决这一问题不可或缺的资源。 参考资源链接:[Python实现微信小程序自动签到与抓包分析](https://wenku.csdn.net/doc/4wy300apik?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆顺治

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值