小程序如何获取群聊的openGid以及名称
2018-07-31|HiShop
导读:有的公司可能需要在微信群里面使用打卡功能,所以可能需要小程序获取群聊的openGid以及名称,下面为大家介绍如何实现。...
有的公司可能需要在微信群里面使用打卡功能,所以可能需要小程序获取群聊的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的场景,但是不会显示群名称,因为你不在群里。所以测试的时候,自己拉个微信群,然后分享到测试群,就能拿到群名称。
HiShop小程序工具提供多类型商城/门店小程序制作,可视化编辑 1秒生成5步上线。通过拖拽、拼接模块布局小程序商城页面,所看即所得,只需要美工就能做出精美商城。更多小程序商店请查看:小程序商店