今年 5 月份的时候,微信宣布:「为了更好的针对群场景提供个性化服务,当用户在群聊中点击小程序分享卡片时,小程序支持开发者获取群 ID 和群名称」。但随后没多久,发现小程序只返回了群 ID,并没有给我们群名。现在,终于有方法可以显示群名称啦!

前言

直到现在,网上还可以看到很多「开发者可以获取群名称」这样的新闻。在微信刚宣布的时候确实同时返回了群ID 和 群名称,但随后就只能获取到群 ID 了。估计会有很多开发者跟我一样被文章误导了,还以为是自己代码有问题。

至于微信为什么这么做,官方也作出了解释:

这就导致了,目前很多和群关联的小程序,一进去就要设置群备注的尴尬现象。

为了保护用户的隐私,同时满足开发的需求,微信需要找到一种获取不到,但又允许展示的方法。

现在微信找到方法了。

下面我们看看如何在小程序里面显示群名称。

获取群 ID

显示群名的前提是,已经获取到了该群的群 ID。要是你之前已经对获取群 ID 有所了解,可以直接跳到后面看。

我们通过将小程序转发到群里,获取到对应群的群 ID。

首先,需要设置显示当前页面的转发按钮,转发后返回 ShareTicket,有了它才能去获取群 ID:

wx.showShareMenu({

withShareTicket: true

})

在代码里面添加 onShareAppMessage 方法,它是用来控制转发功能的。转发成功后,拿到 ShareTicket,再调用 wx.getShareInfo 获取转发目标的信息。代码如下:

onShareAppMessage: function () {

var that = this

return {

title: "转发标题",

path: '页面路径',

success(res) {

wx.getShareInfo({

shareTicket: res.shareTickets[0],

success(res) {

console.log(res.encryptedData)

console.log(res.iv)

// 后台解密,获取 openGId

}

})

}

}

}

和 wx.getUserInfo 一样,微信给了我们一段加密的数据,加密的方式也是一样的,后台可以用同一段代码进行解密。解密后的格式如下:

{

"openGId": "xxxxxxxx",

"watermark": {

"appid": "xxxxxxxx",

"timestamp": 1499841984

}

}

openGId 就是我们要的群 ID 了,把它保存下来。

显示群名

下面我们来到布局文件。

小程序刚更新,多了一个新组件 open-data:

用起来很简单,在要显示群名的地方,使用以下代码:

<open-data type="groupName" open-gid="{{openGId}}" />

将 openGId 传入,就会显示出群名称了。妥妥的。

但这个东西是基础库 1.4.0 才有的东西,最好还是用 wx.getSystemInfo 获取到当前客户端的基础库版本,做一下低版本兼容。

【微信小程序开发教程】如何显示群名称?的更多相关文章

  1. 微信小程序开发教程目录

    本系列教程是自己在工作中使用到而记录的,没有顺序之分 如有错误之处,请给与指正,也不希望误导了别人 微信小程序开发教程目录 微信小程序之注册和入门 微信小程序之HTTPS请求 微信小程序开发之选项卡 ...

  2. 微信小程序开发教程 #043 - 在小程序开发中使用 npm

    本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...

  3. 微信小程序开发教程,大多数人都搞错的八个问题

    小程序目前被炒得沸沸扬扬,无数媒体和企业借机获取阅读流量. 这再次证明一点,微信想让什么火,真的就能让什么火.这种能力真是全中国再也没有人有了,政府也没有. 但四处传的消息很多是失真的,废话不说,先列 ...

  4. 微信应用号来了,微信小程序开发教程!

    关注,QQ群,微信应用号社区 511389428,511389428 微信应用开放的服务和组件包含如下: 视图容器:视图(View).滚动视图.Swiper 基础内容:图标.文本.进度条 表单组件:按 ...

  5. 微信小程序开发教程

    9月21日晚发布的微信公众平台·小程序内侧邀请,微信应用号(小程序,「应用号」的新称呼)终于来了!目前还处于内测阶段,微信只邀请了部分企业参与封测.想必大家都关心应用号的最终形态到底是什么样子? 怎样 ...

  6. 微信小程序开发教程(七)逻辑层——.js详解

    逻辑层,是事务逻辑处理的地方.对于小程序而言,逻辑层就是.js脚本文件的集合.逻辑层将数据进行处理后发送给视图层,同时接收视图层的事件反馈. 微信小程序开发框架的逻辑层是由JavaScript编写.在 ...

  7. 【重点突破】—— UniApp微信小程序开发教程学习Three

    一.实战 HBuilderX:在微信小程序中运行页面,需要设置->安全 开启微信小程序服务端口,HBuilder工具->设置->配置程序路径 网络请求.模板语法.打开页面.页面传参 ...

  8. 微信小程序开发--背景图显示

    这两天开发微信小程序,在设置背景图片时,发现在wxss里面设置 background-image:(url) 属性,不管是开发工具还是线上都无法显示.经过查资料发现,background-image ...

  9. 微信小程序开发教程(八)视图层——.wxml详解

    框架的视图层由WXMKL(WeiXin Markup language)与WXSS(WeiXin Style Sheet)编写,由组件进行展示. 对于微信小程序而言,视图层就是所有.wxml文件与.w ...

随机推荐

  1. 一位菜鸟的java 最基础笔记

    java的特性 简单性(Simple). 结构体系中立(Architecture Neutral). 面向对象(Object Oriented). 易于移植(Portable). 分布式(Distri ...

  2. [Leetcode] Binary tree level order traversal二叉树层次遍历

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  3. Dede CMS如何在文章中增加“附件下载”操作说明

    1.进入后台--在"附件管理"中选择"上传新文件" 2.在"说明标题"输入要上传文件的名字,并在下面浏览找到要上传的文件,保存. 3.在&q ...

  4. Vue 非父子组件通信

    组件是Vue核心的一块内容,组件之间的通信也是很基本的开发需求.组件通信又包括父组件向子组件传数据,子组件向父组件传数据,非父子组件间的通信.前两种通信Vue的文档都说的很清楚,但是第三种文档上确只有 ...

  5. Django中的枚举类型

    一.枚举类型示例 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等.Python 的原生类型(Built-in types)里并没有专门的枚举类型 ...

  6. 浅谈this那些事

    一直以来,对this的讨论都是热门话题.有人说掌握了this就掌握了JavaScript的80%,说法有点夸张,但可见this的重要性.本人至今也是记录了很多关于this的零碎笔记,今天就来个小结. ...

  7. 破解 Adobe 系列的最佳方法,手把手教

    此方法是个人认为最方便的而且最安全的方法(可以避免下载到可能捆绑病毒的破解版本) 1.首先到Adobe的官网上下载 Creative Cloud: 打开官网上creative cloud 的下载页面: ...

  8. 如何让.Net线程支持超时后并自动销毁!

    如何让.Net线程支持超时后并自动销毁! 1.使用CancellationTokenSource之基于Task实现方式 CancellationTokenSource source = new Can ...

  9. 制作Ubuntu Kylin局域网源

    国人参与开发的开源操作系统UbuntuKylin(http://www.ubuntukylin.com/)已经发布有一段时间了,一直想在单位的局域网内部用用,可惜离线安装比较麻烦,于是搜索了些如何制作 ...

  10. ecshop 商品分类页 取得当前分类下的子分类方法

    ecshop的商品分类页面category.php 下的分类,默认是取得所有同级父分类以及父类别的子分类.比如,我点击进入是A商品分类的页面 category.php?id=1,事实上 我只需要取得父 ...