微信小程序如何获取群聊的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 相关文章推荐
js 动态文字滚动的例子
Jan 17 Javascript
Document.body.scrollTop的值总为零的快速解决办法
Jun 09 Javascript
javascript实现随机生成DIV背景色
Jun 20 Javascript
jQuery 全选 全部选 反选 实现代码
Aug 17 Javascript
浅析vue数据绑定
Jan 17 Javascript
javascript 操作cookies详解及实例
Feb 22 Javascript
js实现华丽的九九乘法表效果
Mar 29 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
May 27 Javascript
Vue.js获取被选择的option的value和text值方法
Aug 24 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
Oct 19 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
Apr 25 Javascript
详解微信小程序之提高应用速度小技巧
Jan 07 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的安全策略
2006/10/09 PHP
一个PHP分页类的代码
2011/05/18 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
部署Python的框架下的web app的详细教程
2015/04/30 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
python根据url地址下载小文件的实例
2018/12/18 Python
微信公众号token验证失败解决方案
2019/07/22 Python
谈谈python垃圾回收机制
2020/09/27 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
车间操作工岗位职责
2013/12/19 职场文书
银行开业庆典方案
2014/02/06 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
求职信结尾怎么写
2014/05/26 职场文书
市场营销专业自荐书
2014/06/10 职场文书
青年文明号汇报材料
2014/12/23 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
药店营业员岗位职责
2015/04/14 职场文书
导游词之阆中古城
2019/12/23 职场文书
python实现学员管理系统(面向对象版)
2022/06/05 Python
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers