返回

专注连锁门店会员营销管理系统

线上+线下+进销存+收银+会员
HiShop > Hi小程序 > 小程序开发 > 开发实例 >

小程序如何获取群聊的openGid以及名称

2018-07-31 作者:秩名

有的公司可能需要在微信群里面使用打卡功能,所以可能需要小程序获取群聊的openGid以及名称,下面为大家介绍如何实现

小程序如何获取群聊的openGid以及名称

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

Demo核心代码:

index.js

 

  1. Page({
  2.  
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. openGid: ''
  8. },
  9.  
  10. /**
  11. * 生命周期函数--监听页面加载
  12. */
  13. onLoad: function (options) {
  14. let that = this
  15. wx.showShareMenu({
  16. withShareTicket: true
  17. })
  18. app.getShareTiket(function (globalData) {
  19. console.log('clickReload---globalData-->' + JSON.stringify(globalData))
  20. that.setData({
  21. openGid: globalData.openGid
  22. })
  23. })
  24. },
  25. clickReload: function () {
  26. let that = this
  27. app.getShareTiket(function (globalData) {
  28. console.log('clickReload---globalData-->' + JSON.stringify(globalData))
  29. that.setData({
  30. openGid: globalData.openGid
  31. })
  32. })
  33. }
  34. })

index.wxml

 

  1. <!--index.wxml-->
  2. <view wx:if="{{openGid}}" class='groupName'>
  3. 群名称:<open-data type="groupName" open-gid="{{openGid}}"></open-data>
  4. </view>
  5.  
  6. <view wx:else>
  7. <button bindtap='clickReload'>点击加载群名称</button>
  8. </view>
  9.  
  10. <view>{{openGid ? openGid : '无'}}</view>

app.js

 

  1. //app.js
  2. App({
  3. globalData: {
  4. shareTicket: '',
  5. openGid: ''
  6. },
  7. onLaunch: function (options) {
  8.  
  9. },
  10. onShow: function (options) {
  11. let that = this
  12. if (options && options.scene == 1044) {
  13. that.globalData.shareTicket = options.shareTicket
  14. }
  15. console.log('onShow---options=--->' + JSON.stringify(options))
  16. },
  17. getShareTiket: function (cb) {
  18. let that = this
  19. // 展示本地存储能力
  20. if (that.globalData.shareTicket) {
  21. wx.getShareInfo({
  22. shareTicket: that.globalData.shareTicket,
  23. success: function (res) {
  24. console.log('getShareTiket---shareTicket-->' + JSON.stringify(res))
  25. let js_encryptedData = res.encryptedData
  26. let js_iv = res.iv
  27. wx.login({
  28. success: function (res) {
  29. let js_code = res.code
  30. console.log('code-->' + js_code)
  31. wx.request({
  32. url: 'xxxxxxxx',
  33. method: 'POST',
  34. data: {
  35. code: js_code,
  36. appId: 'xxxxx',
  37. encryptedData: js_encryptedData,
  38. iv: js_iv
  39. },
  40. success: function (res) {
  41. that.globalData.openGid = res.data.openGId
  42. console.log('getShareTiket---openGid' + that.globalData.openGid)
  43. typeof cb == "function" && cb(that.globalData)
  44. },
  45. fail: function (err) {
  46. console.log('getShareTiket---err' + JSON.stringify(err))
  47. }
  48. })
  49. }
  50. })
  51. }
  52. })
  53. } else {
  54. console.log('不存在shareTicket')
  55. }
  56. }
  57. })

注意事项

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

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

HiShop小程序工具提供多类型商城/门店小程序制作,可视化编辑 1秒生成5步上线。通过拖拽、拼接模块布局小程序商城页面,所看即所得,只需要美工就能做出精美商城。更多小程序商店请查看:小程序商店

线上+线下+进销存+收银+会员门店零售管理好帮手

  • 极速收银管理

    门店能实现快速收银,提升门店经营效率。

  • 进销存管理

    系统自带进销存管理,更好管理库存销售。

  • 软硬件一体化

    配备收银硬件一站式整体服务。

收 银 会员管理 库存管理 商品管理 交接班 数据报表 营销促单 售后处理 多种收款

获取报价
【本站声明】

1、本网站发布的该篇文章,目的在于分享电商知识及传递、交流相关电商信息,以便您学习或了解电商知识,请您不要用于其他用途;
2、该篇文章中所涉及的商标、标识的商品/服务并非来源于本网站,更非本网站提供,与本网站无关,系他人的商品或服务,本网站对于该类商标、标识不拥有任何权利;
3、本网站不对该篇文章中所涉及的商标、标识的商品/服务作任何明示或暗示的保证或担保;
4、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。

推荐文章

门店系统 获取报价 立即咨询 免费试用