微信小程序如何获取群聊的openGid以及名称详解


Posted in Javascript onJuly 17, 2019

背景:由于公司可能需要在微信群里面使用打卡功能,因此做了个技术调研。

方案:微信在更新分享接口后,原有的在onShareAppMessage中直接拿shareTicket已不复存在。根据最新文档显示,需要在App.onLaunch()跟App.onShow()中获取。

Demo核心代码:

index.js

Page({

 /**
  * 页面的初始数据
  */
 data: {
  openGid: ''
 },

 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  let that = this
  wx.showShareMenu({
   withShareTicket: true
  })
  app.getShareTiket(function (globalData) {
   console.log('clickReload---globalData-->' + JSON.stringify(globalData))
   that.setData({
    openGid: globalData.openGid
   })
  })
 },
 clickReload: function () {
  let that = this
  app.getShareTiket(function (globalData) {
   console.log('clickReload---globalData-->' + JSON.stringify(globalData))
   that.setData({
    openGid: globalData.openGid
   })
  })
 }
})

index.wxml

<!--index.wxml-->
<view wx:if="{{openGid}}" class='groupName'>
 群名称:<open-data type="groupName" open-gid="{{openGid}}"></open-data>
</view>

<view wx:else>
 <button bindtap='clickReload'>点击加载群名称</button>
</view>

<view>{{openGid ? openGid : '无'}}</view>

app.js

//app.js
App({
 globalData: {
  shareTicket: '',
  openGid: ''
 },
 onLaunch: function (options) {

 },
 onShow: function (options) {
  let that = this
  if (options && options.scene == 1044) {
   that.globalData.shareTicket = options.shareTicket
  }
  console.log('onShow---options=--->' + JSON.stringify(options))
 },
 getShareTiket: function (cb) {
  let that = this
  // 展示本地存储能力
  if (that.globalData.shareTicket) {
   wx.getShareInfo({
    shareTicket: that.globalData.shareTicket,
    success: function (res) {
     console.log('getShareTiket---shareTicket-->' + JSON.stringify(res))
     let js_encryptedData = res.encryptedData
     let js_iv = res.iv
     wx.login({
      success: function (res) {
       let js_code = res.code
       console.log('code-->' + js_code)
       wx.request({
        url: 'xxxxxxxx',
        method: 'POST',
        data: {
         code: js_code,
         appId: 'xxxxx',
         encryptedData: js_encryptedData,
         iv: js_iv
        },
        success: function (res) {
         that.globalData.openGid = res.data.openGId
         console.log('getShareTiket---openGid' + that.globalData.openGid)
         typeof cb == "function" && cb(that.globalData)
        },
        fail: function (err) {
         console.log('getShareTiket---err' + JSON.stringify(err))
        }
       })
      }
     })
    }
   })
  } else {
   console.log('不存在shareTicket')
  }
 }
})

注意事项

1:必须调用这个接口wx.showShareMenu({withShareTicket: true}),否则在App.onLaunch()跟App.onShow()时,你拿不到shareTicket.

2:微信开发者工具可以模拟1044的场景,但是不会显示群名称,因为你不在群里。所以测试的时候,自己拉个微信群,然后分享到测试群,就能拿到群名称。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Prototype 工具函数 学习
Jul 23 Javascript
javascript面向对象之二 命名空间
Feb 08 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
Dec 13 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
JavaScript实现数组随机排序的方法
Jun 26 Javascript
javascript动态添加checkbox复选框的方法
Dec 23 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
浅谈Vue数据绑定的原理
Jan 08 Javascript
vuejs选中当前样式active的实例
Aug 22 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
Feb 28 Javascript
在Vue中实现随hash改变响应菜单高亮
Mar 09 Javascript
v-slot和slot、slot-scope之间相互替换实例
Sep 04 Javascript
vue+django实现一对一聊天功能的实例代码
Jul 17 #Javascript
微信小程序从注册账号到上架(图文详解)
Jul 17 #Javascript
js设置默认时间跨度过程详解
Jul 17 #Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
Jul 17 #Javascript
初试vue-cli使用HBuilderx打包app的坑
Jul 17 #Javascript
移动端吸顶fixbar的解决方案详解
Jul 17 #Javascript
基于webpack4+vue-cli3项目实现换肤功能
Jul 17 #Javascript
You might like
据说是雅虎的一份PHP面试题附答案
2009/01/07 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
php扩展开发入门demo示例
2019/09/23 PHP
JavaScript学习历程和心得小结
2010/08/16 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
js实现简单点赞操作
2020/03/17 Javascript
Python中的异常处理简明介绍
2015/04/13 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
python的变量与赋值详细分析
2017/11/08 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
python移位运算的实现
2019/07/15 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
自荐信结尾
2013/10/27 职场文书
架构师岗位职责
2013/11/18 职场文书
公司授权委托书范本
2014/04/03 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
刘公岛导游词
2015/02/05 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
商标侵权律师函
2015/05/27 职场文书
跑吧孩子观后感
2015/06/10 职场文书
JS数组去重详情
2021/11/07 Javascript