当前位置: 首页 > news >正文

微信小程序订阅消息发送消息,点击消息进入小程序页面

1、在小程序官网订阅消息选用或创建消息模板获取模板ID可多个

如图:

2、微信小程序前端页面发送请求订阅权限

请求模板id的权限可以是一个可以是多个,用户同意订阅,获取code传递给后端——后端拿到code生成唯一的openid用于发送订阅消息

注意:这里用户拒绝了订阅消息我也传递了code但是并不能发送给用户消息(避免打扰),后续客户如果手动开启订阅消息即可接收不需重新获取code

前端请求权限部分代码:

wx.requestSubscribeMessage({
					tmplIds: [
						'模板id1',
						'模板id2',
						'模板id3'
						],
					success: (res) => {
					  if (res['模板id'] == 'accept') {
						console.log('用户同意订阅');
						this.getCode(); // 同意后获取code
					  } else {
						console.log('用户拒绝订阅');
						this.getCode();//同样把code给到后端避免后面开启通知拿不code
					  }
					},
					fail: (err) => {
					  console.error('订阅失败:', err);
					}
				});
//获取code调用接口传给后端后端生成openid
getCode() {
			    wx.login({
			      success: (loginRes) => {
			        console.log('获取code:', loginRes.code);
			        // 将code发送到后端处理
					const params = {
						code:loginRes.code,
						userId:uni.getStorageSync('user_id'),
					}
					// 将code发送到后端处理
					this.$http.get(this.sendCode, {params:params}).then(res => {
						console.log('codegei后端后',res);
					})
			      },
			      fail: (err) => {
			        console.error('登录失败:', err);
			      }
			    });
			},

后端发送订阅消息及跳转路径

// 示例代码(云函数或服务端调用)
const result = await cloud.openapi.subscribeMessage.send({
  touser: '用户openid',
  templateId: '模板ID',
  page: 'pages/login/login', // 这里填写登录页面的路径
  data: {
    // 模板参数...
  }
});

注意:

1、在 app.json 的 pages 字段中,需包含登录页的路径配置(如 "pages/login/login"),否则跳转会失败

2、若需要带参数跳转:若需传递参数(如来源标识),可在路径中添加,例如 pages/login/login?from=notification

3、消息是由后端发送。

最后真机测试,发送通知消息。

 

http://www.dtcms.com/a/76718.html

相关文章:

  • 河南大学计算机网络实验3
  • 解决:ModuleNotFoundError: No module named ‘_sqlite3‘
  • 外贸 B2B 平台没落?多语言批发系统正在崛起
  • 【css酷炫效果】纯CSS实现火焰文字特效
  • 总结 kotlin中的关键字和常用方法
  • 深入理解 JSON.stringify:优雅输出 JSON 数据
  • 机器人曲面跟踪Surface-Tracking
  • Python---文件操作
  • Leetcode 160 Intersection of Two Linked Lists
  • python+flask实现360全景图和stl等多种格式模型浏览
  • taro-vue2 如何使用国密加解密
  • stm32第六天继电器
  • CentOS配置永久静态IP
  • 3D点云目标检测——KITTI数据集读取与处理
  • 电脑管家如何清理内存及垃圾,提升电脑性能
  • 蓝桥杯数字接龙dfs
  • 【Linux】Linux系统上大文件的分割与合并
  • Linux中find 命令的高级用法 组合条件 与、或、非(-a、-o、!) 以及通过 -regex 和 -iregex 选项使用正则表达式
  • Android Vulkan 官宣转正并统一渲染堆栈 ,这对 Flutter 又有什么影响?
  • 【Python】11、函数-01
  • OpenCV图像处理:分割、合并、打码、组合与边界填充
  • VS Code + Git 分支操作指南(附流程图)
  • 基于Redis实现共享token登录
  • pytorch小记(十四):pytorch中 nn.Embedding 详解
  • 机器学习之梯度消失和梯度爆炸
  • 1.5.2 掌握Scala内建控制结构 - 块表达式
  • 【css酷炫效果】纯CSS实现虫洞穿越效果
  • Rust + WebAssembly 实现康威生命游戏
  • java 之枚举问题(超详细!!!!)
  • MySQL(索引)