小程序开发系列(六)获取群信息

小程序最近发布了新功能,转发到群中的页面,再点击的时候可以获取群信息,比如群ID,那要如何实现呢?

1.在页面中开启“转发”功能

代码如下

 onLoad: function () {
    wx.showShareMenu({
      withShareTicket: true
    });
  },

2.在页面中设置 “转发”参数

 //转发
  onShareAppMessage: function () {
    return {
      title: '转发XXXX',
      path: '/pages/retrospect/retrospect',
      success: function (res) {
        // 转发成功
        var shareTickets = res.shareTickets;
        var shareTicket = shareTickets;
        wx.getShareInfo({
          shareTicket: shareTicket,
          success: function (res) {
            console.log('success');
            console.log(res);
            //console.log(res);
            wx.showToast({
              title: '转发成功',
              duration: 5000
            })
          },
          fail: function (res) {
            console.log('fail');
            console.log(res);
            wx.showToast({
              title: 'fail:' + res.errMsg,
              duration: 5000
            })
          }
        });
      },
      fail: function (res) {
        // 转发失败
      }
    }
  }
注:在转发的时候可以获取到shareTicket,使用shareTicket调用wx.getShareInfo可以得到群信息,具体实现请参看后面的代码。

3.响应用户从转发的群中进入

app.js的onLaunch在小程序启动时会触发一次,且直到小程序销毁。app.js中的onShow在小程序显示的时候会触发,只要显示就触发,所以会触发多次。在onLaunch和onShow函数中的参数options可以拿到shareTicket,具体要如何触发需要结合自身场景,简单的示例代码如下,

App({
  onLaunch: function (options) {
    //this.checkLogin(options.shareTicket);
    this.globalData.shareInfo=null;
  },
  onShow: function (options) {
    this.checkLogin(options.shareTicket);
  },
  checkLogin: function (shareTicket) {
    var that = this;
    wx.checkSession({
      success: function () {
        if (!that.globalData.session) {
          that.login(shareTicket);
        };
      },
      fail: function () {
        that.login(shareTicket);
      }
    })
  },
  //登录
  login: function (shareTicket) {
    var that = this
    wx.login({
      success: function (r) {
        if (r.code) {
          that.decodeSession(r.code, shareTicket);
        }
        wx.getUserInfo({
          success: function (res) {
            that.globalData.userInfo = res.userInfo;
          }
        })
      }
    })
  },
  //解密session信息
  decodeSession: function (code, shareTicket) {
    var that = this;
    wx.request({
      url: urls.WeiXin.FetchSessionInfo,//向后端发起换取session_key请求的URL
      data: {
        code: code
      },
      success: function (re) {
        if (re.data.Status == 0) {
          that.globalData.session = {
            openid: re.data.Data.openid,
            key: re.data.Data.session_key
          };
          if (shareTicket) {
            that.getShareInfo(shareTicket);
          }
        }
        else {
          that.globalData.session = null;
        }
     
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值