商城系統(tǒng) 注冊

小程序如何獲取群聊的openGid以及名稱

2018-07-31|HiShop
導(dǎo)讀:有的公司可能需要在微信群里面使用打卡功能,所以可能需要小程序獲取群聊的openGid以及名稱,下面為大家介紹如何實現(xiàn)。...

有的公司可能需要在微信群里面使用打卡功能,所以可能需要小程序獲取群聊的openGid以及名稱,下面為大家介紹如何實現(xiàn)

小程序如何獲取群聊的openGid以及名稱

方案:微信在更新分享接口后,原有的在onShareAppMessage中直接拿shareTicket已不復(fù)存在。根據(jù)最新文檔顯示,需要在App.onLaunch()跟App.onShow()中獲取。

Demo核心代碼:

index.js

 

  1. Page({
  2.  
  3. /**
  4. * 頁面的初始數(shù)據(jù)
  5. */
  6. data: {
  7. openGid: ''
  8. },
  9.  
  10. /**
  11. * 生命周期函數(shù)--監(jiān)聽頁面加載
  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:必須調(diào)用這個接口wx.showShareMenu({withShareTicket: true}),否則在App.onLaunch()跟App.onShow()時,你拿不到shareTicket.

2:微信開發(fā)者工具可以模擬1044的場景,但是不會顯示群名稱,因為你不在群里。所以測試的時候,自己拉個微信群,然后分享到測試群,就能拿到群名稱。

HiShop小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁面,所看即所得,只需要美工就能做出精美商城。更多小程序商店請查看:小程序商店

電話咨詢 預(yù)約演示 0元開店