微信小程序-消息订阅整体流程

1.首先登录微信公众平台,网址:微信公众平台

2.找到“订阅消息”,如果订阅消息没开启,可以点击开启,然后根据自己的消息需求到公共模版里找合适的,然后点击选用,如果没有比较合适的可以申请模版

3.申请模版步骤(如果找到合适的模版可以不申请直接跳过这步),这里在公共模板里面跳到最后一页,就可以看见‘帮助我们完善模板库’,点击去申请模板,

点进去之后长这样

填写案例:类似这种,根据自己的需求填写,一般如果审核不通过的话,会很详细的告诉你是哪里的问题,根据他告诉你的改就可以啦,审核通过以后,在公共模板里搜索你添加的模板,然后选中

4.选中模板之后我们就可以开始写程序了,先复制一下选中的模板的ID

5,因为这个小程序的订阅弹窗不能直接调用触发,需要用户点击触发,所以你需要在你的的小程序的那个页面写一个按钮来触发这个弹窗,下面这个就是点击按钮调用的事件,这样消息订阅就完成了

// 订阅消息按钮
	const SubscriptionMessage = ()=>{
		const tmplIds =刚刚复制的模板id
		// 获取小程序订阅状态
		wx.getSetting({
		    withSubscriptions: true,  
			success: function(res){ 
				 // 调起授权界面弹窗
				        if (res.subscriptionsSetting&&res.subscriptionsSetting.mainSwitch) {  // 用户打开了订阅消息总开关
						// 用户同意总是保持是否推送消息的选择, 这里表示以后不会再拉起推送消息的授权
				          if (res.subscriptionsSetting.itemSettings != null) {   
				            let moIdState = res.subscriptionsSetting.itemSettings[tmplIds];  // 用户同意的消息模板id
				            if(moIdState === 'accept'){   
				              console.log('接受了消息推送');
							  uni.showToast({
							  	title: '已订阅过消息推送',
							  	icon:'success',
							  	duration: 2000
							  })
				            }else if(moIdState == 'reject'){
				              console.log("拒绝消息推送");
							  uni.showToast({
							  	title: '已永久拒绝消息推送',
							  	icon:'success',
							  	duration: 2000
							  })
				            }else if(moIdState == 'ban'){
				              console.log("已被后台封禁");
				            }
				          }else {
				          	// 当用户没有点击 ’总是保持以上选择,不再询问‘  按钮。那每次执到这都会拉起授权弹窗
				            wx.showModal({
				              title: '提示',
				              content:'请授权开通服务通知',
				              showCancel: true,
				              success: function (ress) {
				                if (ress.confirm) {  
								// 调起消息订阅界面
				                  wx.requestSubscribeMessage({   
				                    tmplIds: [tmplIds],
				                    success (res) { 
										if(res[tmplIds] == 'accept'){
											console.log('订阅消息 成功 ');
											// uni.showToast({
											// 	title: '消息订阅成功',
											// 	icon:'success',
											// 	duration: 2000
											// })
										}
										if(res[tmplIds] == 'reject'){
											console.log('已拒绝订阅');
										}
				                    },
				                    fail (er){
				                      console.log("订阅消息 失败 ");
				                      console.log(er);
				                    }
				                  })     
				                        
				                }
				              }
				            })
				          }
				        }else {
				          console.log('订阅消息未开启')
						  uni.showToast({
						  	title: '订阅消息未开启',
							icon:'error',
						  	duration: 2000
						  })
				        }  
			},
		})
	}

 6.解释:小程序消息订阅下方有一个‘总是保持以上选项,不再询问’的按钮,首先我们要通过wx.getSetting来获取用户小程序绑定的状态,wx.getSetting(Object object) | 微信开放文档

通过返回的状态来判断,用户是否勾选了‘总是保持以上选项,不再询问’按钮,如果勾选过了,那询问的弹窗就不会谈起,如果没有勾选就代表用户只同意过一次消息推送,当他再次点击的时候要再次订阅,wx.requestSubscribeMessage是消息订阅的APIwx.requestSubscribeMessage(Object object) | 微信开放文档

,但这里有一个问题就是如果我勾选了‘总是保持以上选项,不再询问’的按钮,我还想弹窗让他重新订阅怎么实现,如果是用户手动操作的话可以在右上角的设置-订阅消息里面开启,如果是写代码的话请参考这篇文章小程序订阅消息用户拒绝后,如何引导用户再次开启,并获得它的状态?-Js中文网 · 前端进阶资源教程还有就是在我们开发调试中,也想让她再次弹出,可以点击微信开发者工具上面的按钮进行授权数据清除

参考作者链接:

http://t.csdnimg.cn/U7mhx

http://t.csdnimg.cn/FdZGX

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/401991.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】SpringBoot框架开发音乐平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首音乐4.2 新增音乐4.3 新增音乐订单4.4 查询音乐订单4.5 新增音乐收藏 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的音乐平台,包含了音乐…

使用maven集成spring在测试的时候报出了如下的异常:version 60

使用maven集成spring在测试的时候报出了如下的异常: Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 60 解决:

MySQL学习笔记3: MySQL数据库基础

目录 前言目标数据库操作(针对database 的操作)1. 创建数据库 create database 数据库名;2. 查看数据库 show databases;3. 选中数据库 use 数据库名;4. 删除数据库 drop database 数据库名; mysql中支持的数据类型1. 数值类型: NUMERIC(M,D)2. 字符串类…

LeetCode | 两数相加 C语言

Problem: 2. 两数相加 文章目录 思路解题方法Code一些感想 思路 主要是一一相加和逆序的方式存储 先说逆序储存,看下图 我们先声明出指针p和指针q,还有指针head(主要用于return上而已),然后进行一系列操作&#xff0c…

【Spring Cloud】实现微服务调用的负载均衡

文章目录 什么是负载均衡自定义实现负载均衡启动shop-product微服务通过nacos查看微服务的启动情况自定义实现负载均衡 基于Ribbon实现负载均衡添加注解修改服务调用的方法Ribbon支持的负载均衡策略通过修改配置来调整 Ribbon 的负载均衡策略通过注入Bean来调整 Ribbon 的负载均…

【Vue】本地使用 axios 调用第三方接口并处理跨域

前端处理跨域 一. 开发准备 开发工具:VScode框架:Vue2项目结构:vue脚手架生成的标准项目(以下仅显示主要部分) 本地已搭建好的端口:8080要请求的第三方接口:http://1.11.1.111:端口号/xxx-api…

3.1 XPath的使用

目录 3.1.1 XPath的作用 3.1.2 XPath使用前提 3.1.3 XPath的使用 &#xff08;1&#xff09;属性匹配和获取一个属性值节点的内容 &#xff08;2&#xff09;属性多值匹配 &#xff08;3&#xff09;获取<>中的内容 &#xff08;4&#xff09;多属性匹配 &#…

通知:全面停工停产6个月,员工解雇工

随着新能源汽车兴起&#xff0c;汽车行业涌现出许多造车新势力&#xff0c;包括蔚来、理想、小鹏、哪吒、零跑等。然而&#xff0c;近日&#xff0c;高合汽车陷入了困境&#xff0c;宣布全面停工停产&#xff0c;员工被解雇&#xff0c;新车降价清仓。 据百能云芯电子元器件商城…

力扣225 用队列实现栈

题目链接 如果用两个栈来实现队列&#xff0c;那么可以用两个队列来实现栈吗 首先看入栈操作和入队是一样的&#xff0c;直接用 就是这个出栈&#xff0c;每次出栈的是队列里的最后一个元素&#xff0c;那么将前面的元素依次入到第二个队列&#xff0c;然后再将所剩的最后一个…

Spring解决循环依赖

目录 什么是spring循环依赖 什么情况下循环依赖可以被处理&#xff1f; spring 如何解决循环依赖 创建A这个Bean的流程 答疑 疑问&#xff1a;在给B注入的时候为什么要注入一个代理对象&#xff1f; 初始化的时候是对A对象本身进行初始化&#xff0c;而容器中以及注入到B…

windows系统下载安装 memcached

好 之前说 带大家要用spring boot整合cache 其中包括 memcached 那么今天就带大家 下载安装一下 我们先访问地址 https://cloud.tencent.com/developer/article/2049577 这也是别人发的一个网址 里面放了他放在网上的资源 简单归纳为 windows 32位 链接 https://share.weiyun…

Java 学习和实践笔记(16):类的理解以及初始值

类&#xff0c;英文名叫class。基本上对应的就是语言里的名词。 比如&#xff0c;房子、人、树、花、汽车等等&#xff0c;这些名词&#xff0c;这些可以定义成类。 以房子为例&#xff0c;作为一个房子&#xff0c;它一定有相应的属性&#xff0c;比如房顶、墙、门、窗等等&…

redis复习笔记06(小滴课堂)

分布式锁核心知识介绍和注意事项 基于Redis实现分布式锁的几种坑 综合伪代码&#xff1a; 运行&#xff1a;

乱评?口碑不错老牌TOP期刊竟也被预警?预警名单再遭质疑!

【SciencePub学术】 2024年《国际期刊预警名单》 2024年预警原因&#xff1a;引用操纵 FUEL IF(2022)&#xff1a;7.4&#xff0c;JCR1区&#xff0c;中科院1区TOP 期刊数据指标 ISSN&#xff1a;0016-2361 IF(2022)&#xff1a;7.4 自引率&#xff1a;20.30% 年发文量&…

我有一个自解压的文件,格式EXE的.我想加密.怎么弄? 给人家要密码才能解压.

要加密一个自解压的EXE文件&#xff0c;使其需要密码才能解压&#xff0c;你可以使用加密软件或者对EXE文件进行一些特殊的处理。以下是一些建议的方法&#xff1a; 1. 使用加密软件 WinRAR&#xff1a;WinRAR是一个常用的压缩和解压缩工具&#xff0c;它也提供了加密功能。你…

大模型相关论文笔记

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 用于知识密集型NLP任务的检索增强生成 Facebook 2020 PDF CODE &#xff08;论文代码链接已失效&#xff0c;以上是最新链接&#xff09; 引言 大模型有幻觉问题&#xff08;hallucinations&#xff09;&…

UiAutomator2自动化测试框架带你玩转APP操作

前言 很早以前&#xff0c;我用uiautomatorjava实践过Android APP自动化测试&#xff0c;不过今天要提的不是uiautomator&#xff0c;而是uiautomator2。听起来uiautomator2像是uiautomator的升级版&#xff0c;但是这两款框架仅仅是名字上比较相似&#xff0c;实际上没有任何…

11、内网安全-横向移动NTLM-Relay重放Responder中继攻击LdapEws

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正&#xff01; 目录 前提知识&#xff1a; 一、横向移动-NTLM 中继攻击-Relay 重放-SMB 上线 1、CS权限转给MSF: 2、MSF: 3、添加路由&#xff1a; 4、smb_relay重发模块&#xff1a; 5、受控主机输…

关于dxf文件中,多段线凸度的计算

1.前言 在前面的CAD中的dxf文件解析(二)中讲到了一些CAD的dxf文件解析点、线、圆弧、圆、块等的思路。下面提供链接&#xff1a; &#xff08;二): CAD中的dxf文件解析(二):dxflib的使用_不爱学习 未完待续的博客-CSDN博客_dxflib (一)&#xff1a;CAD中的dxf文件解析(一):准备…

[ 2024春节 Flink打卡 ] -- Paimon

2024&#xff0c;游子未归乡。工作需要&#xff0c;flink coding。觉知此事要躬行&#xff0c;未休&#xff0c;特记 Flink 社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合&#xff0c;推出新一代的 Streaming Lakehouse 技术&#xff0c;…