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

 更新时间:2019年07月17日 17:09:25   作者:Luciena  
这篇文章主要介绍了小程序如何获取群聊的openGid以及名称详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

方案:微信在更新分享接口后,原有的在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实现的苹果系统底部菜单

    详解基于javascript实现的苹果系统底部菜单

    本篇文章主要对基于javascript实现的苹果系统底部菜单进行了详细的分析说明,有助于理解和学习编写苹果系统底部菜单,相信会对大家有所帮助,下面就跟小编一起来看看吧
    2016-12-12
  • dts文件中删除一个node或属性的操作方法

    dts文件中删除一个node或属性的操作方法

    这篇文章主要介绍了dts文件中删除一个node或属性的操作方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • ClearTimeout消除闪动实例代码

    ClearTimeout消除闪动实例代码

    本文给大家介绍ClearTimeout消除闪动相关知识,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-02-02
  • 原生js实现移动端瀑布流式代码示例

    原生js实现移动端瀑布流式代码示例

    这篇文章主要为大家分享了原生js实现移动端瀑布流式代码示例,对瀑布流布局感兴趣的小伙伴们可以参考一下
    2015-12-12
  • js触发asp.net的Button的Onclick事件应用

    js触发asp.net的Button的Onclick事件应用

    由于asp.net采用的是事件驱动模式,所以默认用户按回车并没有触发按钮的onclick事件。用户按回车也不是没有提交表单,通过httpwath可以看到,实际上页面表单是提交到了form下的action页面,只不过没有触发onclick事件而已,感兴趣的朋友可以了解下,或许对你有所帮助
    2013-02-02
  • JavaScript关联数组用法分析【概念、定义、遍历】

    JavaScript关联数组用法分析【概念、定义、遍历】

    这篇文章主要介绍了JavaScript关联数组用法,结合实例形式分析了关联数组的概念、定义与遍历操作相关实现技巧,需要的朋友可以参考下
    2017-03-03
  • javascript操作ul中li的方法

    javascript操作ul中li的方法

    这篇文章主要介绍了javascript操作ul中li的方法,可实现鼠标经过li标签项对应改变背景色的功能,涉及javascript鼠标事件及页面元素属性的相关操作技巧,需要的朋友可以参考下
    2015-05-05
  • 根据一段代码浅谈Javascript闭包

    根据一段代码浅谈Javascript闭包

    水平不高,不能也不想从太深的层次去讲解这个东西,只是根据一段比较有代表性的代码,结合执行结果,从表象上粗浅地谈谈。
    2010-12-12
  • 深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)

    深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)

    本篇是ECMA-262-3 in detail系列的一个概述(本人后续会翻译整理这些文章到本系列(第11-19章)。每个章节都有一个更详细的内容链接,你可以继续读一下每个章节对应的详细内容链接进行更深入的了解
    2012-01-01
  • NodeJS 模块开发及发布详解分享

    NodeJS 模块开发及发布详解分享

    NodeJS 是一门年轻的语言,扩展模块并不太全,经常我们想用某个模块但是却找不到合适的
    2012-03-03

最新评论