微信小程序转发功能

article/2025/10/9 7:33:22

微信小程序转发涉及以下4个方法:

1、Page.onShareAppMessage({}) 
设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据 
2、wx.showSahreMenu() 
用户点击右上角后,显示“转发”按钮 
3、wx.hideShareMenu() 
隐藏转发按钮,无视 Page.onShareAppMessage({}) 
4、wx.getShareInfo({}) 
根据 shareTicket 获取已加密的群信息

把转发流程切分:转发前配置->转发时->转发到群组后打开->二次转发 
转发流程图:

这里写图片描述

U1: 用户 
T1,T2,T3:表示转发票据,即 shareTicket 
G1,G2,G3:群组

1.转发前配置 
在页面 onLoad 方法添加

1 wx.showShareMenu({
2     withShareTicket: true
3 })

 

withShareTicket 为 true 时,表示允许转发时是否携带 shareTicket。 
shareTicket 是获取转发目标群信息的票据,只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket 。

shareTicket 有两个用途:

  • 用户主动转发后,获取转发到目标群群信息,对应上图UI。
  • 用户在群组中打开小程序,获取群组信息,对应上图 G1 群组中的用户。

2.转发时获取群信息 
当某个小程序被转发到群组后,开发者想获取到转发目标群组信息,将用户和群组做某种绑定关系(openId openGid)。

 1 onShareAppMessage: function () {
 2     return {
 3       title: '自定义转发标题',
 4       path: '/page/user?id=123',
 5       success: function(res) {
 6         var shareTickets = res.shareTickets;
 7         if (shareTickets.length == 0) {
 8             return false;
 9         }
10         wx.getShareInfo({
11             shareTicket: shareTickets[0],
12             success: function(res){
13                 var encryptedData = res.encryptedData;
14                 var iv = res.iv;
15             }
16         })
17       },
18       fail: function(res) {
19         // 转发失败
20       }
21     }
22   }

 

 

shareTickets 是一个数组,每一项是一个 shareTicket ,对应一个转发对象,转发给用户不会包含shareTicket。

拿到 shareTicket 之后,使用 wx.getShareInfo({}) 方法传入 shareTicket 参数,wx.getShareInfo({}) 里回调函数中包含 已加密的群信息和 向量IV。

3.转发到群组后打开 
用户将小程序转发到微信群组后,群成员打开小程序,通过 shareTicket,开发者就能将群成员和群组绑定起来(openId openGid),基于群组关系,小程序有更多的应用场景,例如:王者荣耀群排行,摩拜单车。

 1 Page({
 2     onLoad: function(opt) {
 3         /** 判断场景值,1044 为转发场景,包含shareTicket 参数 */
 4         if (opt.scene == 1044) {
 5             wx.getShareInfo({
 6                 shareTicket: opt.shareTicket,
 7                 success: function(res){
 8                     var encryptedData = res.encryptedData;
 9                     var iv = res.iv;
10                 }
11             })
12         }
13     }
14 })

 

在群组中打开小程序,页面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判断 scene 是否为1044,如果不是则不包含 opt 中 shareTicket 参数。

4.二次转发 
二次转发重复前3个步骤,没什么可说的,但是有一个方向值得探讨,可否把小程序转发路径比作转发链,进而生成转发树,用数据结构方法(树、马尔科夫链)处理发现群组与群组,群组与成员之间微妙关系。

如开头那张图,我们很容易看出转发链和转发树。 
转发链:U1 > G1 > G2 
转发树:U1 > G1 > G2 & G3


更多专业前端知识,请上 【猿2048】www.mk2048.com

http://chatgpt.dhexx.cn/article/dl2KEBCE.shtml

相关文章

微信小程序开发实战9_2 小程序页面转发

小程序页面转发是小程序分享的一个重要方式,在设计小程序应用时就需要考虑那些页面需要实现转发功能,以及页面的转发参数。本节介绍如何进行小程序页面的分享,并介绍如何获取小程序卡片的分享票据。 9.2.1小程序页面转发 微信小程序提供了页…

Ubuntu16.04安装Cronolog

一、下载安装包 wget https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz 二、 解压缩 tar -xzvf cronolog-1.6.2.tar.gz 三、进入安装目录 cd cronolog-1.6.2/ 四、运行安装 ./configure && make && make install 五、查看是否安装成功 wh…

Linux中Tomcat中的Cronolog日志分割工具配置

说明 在Tomcat 部署中我们默认访问的日志是logs 随着访问量的增加 一个catalina.out 访问量可能是10几G 如果不对logs 的日志进行分割的话,随着访问量的增加Tomcat 的日志就会占用大量资源浪费 ,特此 需要使用 cronlong 日志分割工具进行分割日志 如图所…

CentoS 7.8.2003 安装篇三:Cronolog 日期切割工具

一、下载 wget http://cronolog.org/download/cronolog-1.6.2.tar.gz二. 解压缩 tar zxvf cronolog-1.6.2.tar.gz 三. 进入安装目录 cd cronolog-1.6.2 四. 运行安装 ./configure make make install 五. 查看是否安装成功 which cronolog…

使用cronolog进行日志切割

1、下载(最新版本) # wget http://cronolog.org/download/cronolog-1.6.2.tar.gz 2、解压缩 tar -xvf cronolog-1.6.2.tar 3、进入cronolog安装文件所在目录 cd cronolog-1.6.2 4、运行安装 # ./configure # make # make install 5、查看cronol…

cronolog切割tomcat的catalina.out日志

Linux下运行的Web服务器Apache,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。安装cronolog后,可以将日志文件按时间分割,易于管理和分析。补充:apache自带的日志分割工具rotatelogs&a…

Tomcat日志切割cronolog

Cronolog 分割 Tomcat8 Catalina.out日志。 默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成…

使用工具Cronolog进行日志分隔

前言:tomcat日志按日期切割 使用Cronolog 分割 Tomcat9下的catalina.out日志;tomcat的catalina.out日志文件无法按照日期进行自行分割,全部输出并写入到一个catalina.out文件下,如此日积月累就会造成.out日志越来越大&#xff0c…

Linux下tomcat日志分割工具cronolog

使用cronolog在Linux 下进行日志分割 1、下载编译安装 点击下载:cronolog-1.6.2.tar.gz 上传至Linux的/usr/local/src/07.cronolog下 执行解压: tar –zxvf cronolog-1.6.2.tar.gz 编辑配置 cd cronolog-1.6.2 ./configure 编译…

日志切割工具cronolog详解

日志切割工具cronolog详解 大家都知道apache服务器,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。本文主要讲解Web服务器日志切割工具cronolog,下面我们就来详细的讲解一下。 1.上传及安装日志轮询工具cro…

win cronolog tomcat 日志分割

首先找到tomcat得bin目录录下边得startup.bat 编辑文件 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 换成 call "%EXECUTABLE%" run %CMD_LINE_ARGS% 修改之后 如下 cronolog.exe 去下边得链接去下载,我也是花了一块钱去下载的,找…

tomcat 配置 cronolog

1、将文件复制到制定目录下,解压文件 tar xf cronolog-1.6.2.tar.gz 2、进入目录 cd cronolog-1.6.2 运行配置 ./configure &>/dev/null 3、执行 make &>/dev/null make install &>/dev/null 4、最后修改 tomcat bin目录下catalina.sh …

java日志切割工具_Cronolog日志分割工具

释放双眼,带上耳机,听听看~! 下载安装Cronolog wget http://rpmfind.net/linux/epel/7/x86_64/Packages/c/cronolog-1.6.2-14.el7.x86_64.rpm rpm -Uvh cronolog-1.6.2-14.el7.x86_64.rpm #验证cronolog安装路径 which cronolog /sbin/cronol…

Linux 日志切割工具cronolog无root权限安装

1、下载安装包,我这下载的是cronolog-1.6.2.tar.gz 2、放到自己有权限的目录下面比如 /home/cronolog/ 3、解压 tar zxvf cronolog-1.6.2.tar.gz 4、进入cronolog安装文件所在目录 cd cronolog-1.6.2 2.4 运行安装 ./configuremakemake install 注&#xff…

日志分隔工具Cronolog的使用

Cronolog 分割 Tomcat8 Catalina.out日志。 默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成…

Linux日志切割工具cronolog详解与安装

1,cronolog的介绍 cronolog 是一个简单的过滤程序,读取日志文件条目从标准输入和输出的每个条目并写入指定的 日志文件的文件名模板和当前的日期和时间。当扩展文件名的变化,目前的文件是关闭,新开辟的。 cronolog 旨在和一个Web…

EXMC(FSMC)转BRAM,实现单片机与FPGA的交互,FPGA端

目录 1. 前言1.1 需求1.2 平台 2. 背景知识3. 实操3.1 工程介绍3.2 接口介绍3.2.1 EXMC信号介绍:3.2.2 BRAM接口介绍3.2.2 对比 3.3 代码: 5. 附录 1. 前言 在国产的GD32和复旦微FPGA之间实现较高带宽的数据通信,可以使用EXMC接口。EXMC接口…

FPGA逻辑资源评估之BRAM(以Xilinx为例)

在FPGA逻辑设计时,需要参考所需逻辑资源对FPGA进行选型,其中一项就是对BRAM的评估,在这里以xilinx UltraSCALE系列FPGA为例,对BRAM进行简单介绍。 FPGA中RAM资源一般分为DRAM和BRAM两种,而Xilinx UltraSCALE系列FPGA除…

xilinx BRAM实现FIFO

许多FPGA设计使用BRAM来实现FIFO。在Xilinx 7系列体系结构中,块RAM中的专用逻辑能够实现同步或双时钟(异步)FIFO。这消除了计数器、比较器或状态标志生成所需的额外CLB逻辑,并且每个FIFO仅使用一个块RAM资源。支持标准和首字跳转&…

【正点原子FPGA连载】 第十八章基于BRAM的PS和PL的数据交互 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十八章基于BRA…