群用户通过微信小程序可以更好地协作了
今天,小程序向开发者开放了群ID的接口能力。简单地说,就是当你把小程序分享在群聊中,被点击后开发者可获取群ID和群名称,也方便更好地针对群场景提供个性化服务。不同的群有各自的群ID,那么这个新能力开发者该怎么使用?
群用户间可以更好地协作
大家都知道,小程序可以方便地在群聊中分享,但开发者难以识别不同用户的点击路径。
现在,通过最新的接口能力,开发者可以通过群ID判断用户是否来自同一个微信群,同一个群内的用户之间可以更好地使用小程序进行协作,例如共同编辑文档、协同合作、共同点餐等等。
提供更个性化的服务
通过不同的群ID,开发者可以针对各个微信群提供更个性化的服务和内容,满足不同用户的多样需求。
onShareAppMessage
在 Page 中定义 onShareAppMessage 函数,设置该页面的分享信息。
- 只有定义了此事件处理函数,右上角菜单才会显示 “分享” 按钮
- 用户点击分享按钮的时候会调用
- 此事件需要 return 一个 Object,用于自定义分享内容
自定义分享字段
字段 | 说明 | 默认值 | 最低版本 |
---|---|---|---|
title | 分享标题 | 当前小程序名称 | |
path | 分享路径 | 当前页面 path ,必须是以 / 开头的完整路径 | |
success | 分享成功的回调函数 | 1.1.0 | |
fail | 分享失败的回调函数 | 1.1.0 | |
complete | 分享结束的回调函数(分享成功、失败都会执行 | 1.1.0 |
回调结果:
回调类型 | errMsg | 说明 |
---|---|---|
success | shareAppMessage:ok | 分享成功 |
fail | shareAppMessage:fail cancel | 用户取消分享 |
fail | shareAppMessage:fail (detail message) | 分享失败,其中 detail message 为详细失败信息 |
success回调参数说明:
参数 | 类型 | 说明 | 最低版本 |
---|---|---|---|
shareTickets | Array String | shareTicket 数组,每一项是一个 shareTicket ,对应一个分享对象 | 1.1.0 |
示例代码:
Page({
onShareAppMessage: function () {
return {
title: '自定义分享标题',
path: '/page/user?id=123',
success: function(res) {
// 分享成功
},
fail: function(res) {
// 分享失败
}
}
}
})
wx.showShareMenu(OBJECT)
基础库 1.1.0 开始支持,低版本需做兼容处理
显示当前页面的分享按钮
OBJECT参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
withShareTicket | Boolean | 否 | 是否使用带 shareTicket 的分享详情 |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.showShareMenu({
withShareTicket: true
})
wx.hideShareMenu(OBJECT)
基础库 1.1.0 开始支持,低版本需做兼容处理
隐藏分享按钮
OBJECT参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.hideShareMenu()
wx.getShareInfo(OBJECT)
基础库 1.1.0 开始支持,低版本需做兼容处理
获取分享详细信息
OBJECT参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
shareTicket | String | 是 | shareTicket |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
CALLBACK 参数说明:
参数 | 类型 | 说明 |
---|---|---|
errMsg | String | 错误信息 |
roomTopic | String | 群名称 |
rawData | String | 不包括敏感信息的原始数据字符串,用于计算签名。 |
signature | String | 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验分享信息,参考文档signature。 |
encryptedData | String | 包括敏感数据在内的完整分享信息的加密数据,详细见加密数据解密算法 |
iv | String | 加密算法的初始向量,详细见加密数据解密算法 |
encryptedData 解密后为一个 JSON 结构,包含字段如下:
字段 | 说明 |
---|---|
openGId | 群对当前小程序的唯一 ID |
roomTopic | 群名称 |
获取更多分享信息
通常开发者希望分享出去的小程序被二次打开的时候能够获取到一些信息,例如群聊名字或者是群的标识。现在通过调用 wx.showShareMenu
并且设置 withShareTicket
为 true
,当用户将小程序分享到任一群聊之后,可以获取到此次分享的 shareTicket
,此分享卡片在群聊中被其他用户打开时,可以在 App.onLaunch() 获取到另一个shareTicket
。这两步获取到的 shareTicket
均可通过 wx.getShareInfo() 接口可以获取到相同的分享信息。
Bug & Tip
tip
: 分享图片不能自定义;会取当前页面,从顶部开始,高度为 80% 屏幕宽度的图像作为分享图片。tip
: 分享的调试支持请查看 普通分享的调试支持 和 带 shareTicket 的分享tip
: 只有分享到群聊中打开才可以获取到shareTickets
返回值,单聊没有shareTickets
tip
:shareTicket
仅在当前小程序生命周期内有效
群用户通过微信小程序可以更好地协作了的更多相关文章
- 微信小程序-用户拒绝授权使用 wx.openSetting({}) 重新调起授权用户信息
场景模拟:用户进入微信小程序-程序调出授权 选择拒绝之后,需要用到用户授权才能正常使用的页面,就无法正常使用了. 解决方法:在用户选择拒绝之后,弹窗提示用户 拒绝授权之后无法使用,让用户重新授权(微信 ...
- WordPress版微信小程序安装使用说明
昨天在群里,有刚刚使用WordPress版微信小程序朋友,在问安装过程中的问题,这些问题是经常被问到,这至少说明两个问题: 1.我开发的程序安装和使用不够简易,无法通过简单的配置就可以使用,特别是如果 ...
- 微信小程序学习指南
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- APP和小程序哪个更合适企业
很多企业都在纠结做APP好呢,还是做小程序好,那么我们来说说APP和小程序之间的区别,希望通过对比让您了解APP和小程序的功能,让您的企业在制作APP和小程序之间有一个选择. 一. 面向用户群 App ...
- 1.什么是微信小程序
微信小程序,简称CX,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用.也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题. 应用将无处 ...
- 微信小程序与传统APP十大优劣对比
随着微信公众平台的开放,微信端小程序涌现市场,带来很很多便利和简单的原生操作,询:微信端小程序是否会替代传统的APP应用?两者的优劣如何?我们一起来看看传统APP与微信端小程序十大优劣对比 ...
- 微信小程序实例教程(一)
序言 开始开发应用号之前,先看看官方公布的「小程序」教程吧!(以下内容来自微信官方公布的「小程序」开发指南) 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序 ...
- 我为什么不看好微信小程序
我自认为对新技术还是比较有热情的,可对于小程序这个“新技术”,我却完全是被动的.去年9月份的时候,微信小程序开始内测,瞬间引爆朋友圈.知乎等一众分享平台.当时我大概了解了一下,觉得从技术角度上来说没啥 ...
- 微信小程序尝鲜一个月现状分析
概述 曾记得在微信小程序还没有上线的时候,大家都是翘首以待.希望在张小龙,在企鹅的带领下,走出差别于原生开发的还有一条移动开发的道路,我也是一直关注着.知道1月9号,微信小程序最终对外开放了,作为第一 ...
随机推荐
- iis下的php环境的配置
1. 参考园友文章: http://www.cnblogs.com/zengxiangzhan/archive/2010/03/05/1679286.html 2.另外还可以参考一下文章: http: ...
- UML类图的几种关系总结【转】
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- 【thinkphp5】使用tp5开发api接口 定义全局异常处理
1 新建文件夹以及文件 路径: /application/lib/exception/ExceptionHandler.php 并键入以下代码 <?php namespace app\lib\e ...
- 决策树归纳算法之C4.5
前面学习了ID3,知道了有关“熵”以及“信息增益”的概念之后. 今天,来学习一下C4.5.都说C4.5是ID3的改进版,那么,ID3到底哪些地方做的不好?C4.5又是如何改进的呢? 在此,引用一下前人 ...
- springboot---->集成mybatis开发(二)
这里面我们介绍一下springboot集成mybatis完成一对多数据和一对一数据的功能.任何一个人离开你 都并非突然做的决定 人心是慢慢变冷 树叶是渐渐变黄 故事是缓缓写到结局 而爱是因为失望太多 ...
- 使用import取代require
首先,Module 语法是 JavaScript 模块的标准写法,坚持使用这种写法.使用import取代require. // bad const moduleA = require('moduleA ...
- LinQ实战学习笔记(一) LINQ to (Objects, XML, SQL) 入门初步
LINQ对于笔者来说, 优美而浓缩的代码让人震惊. 研究LINQ就是在艺术化自己的代码. 之前只是走马观花学会了基本的语法, 但是经常在CSDN看到令人惊讶自叹不如的LINQ代码, 还是让人羡慕嫉妒恨 ...
- Microsoft Security Essentials
https://support.microsoft.com/zh-cn/help/18900/consumer-antivirus-software-providers-for-windows 适 ...
- 使用私钥.pem和SecureCRT登陆linux系统
将密钥上传到一台自己的linux主机,下面举例文件名为 key.pemchmod 600 key.pem改写密钥格式为 OpenSSH,如果询问passphrase可以留空(直接回车)ssh-keyg ...
- tcp连接的状态变迁以及如何调整tcp连接中处于time_wait的时间
一.状态变迁图 二.time_wait状态 针对time_wait和close_wait有个简单的描述帮助理解: Due to the way TCP/IP works, connections ca ...