微信小程序订阅消息

在小程序特定场景下,为更好服务用户,需用户订阅推送消息。微信小程序订阅消息有诸多限制,如用户一次最多订3条、须主动点击触发等。文中给出订阅消息的代码实现,包括检测用户授权、分组模板消息id及订阅消息等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在小程序的某些场景下,为了能够更好的给用户提供服务,有时需要用户对小程序的推送消息进行订阅,这样小程序才能在适当的时候给用户进行推送

微信小程序的订阅消息也有一定的限制,比如:

1.用户一次性最多只能订阅3条信息

2.用户必须主动点击按钮,才能触发订阅消息

3.用户每订阅一次,才能推送一次

4.若用户选择了“总是保持以上选择”后,将不会再有消息订阅的提示

下面是订阅消息的代码实现

首先,为了用户能够顺利的进入授权流程,我们得先检测用户是否对此小程序开启了授权

//检测用户是否开启授权权限
            getSetting() {
                const _this = this
                uni.getSetting({
                    withSubscriptions: true,
                    success(res) {
                        if (!res.subscriptionsSetting.mainSwitch) {
                            //后台封禁了
                            //引导用户打开权限
                            uni.showModal({
                                title: '请在通知管理中开启接收通知的权限',
                                success(res) {
                                    if (res.confirm) {
                                        uni.openSetting({})
                                    } else if (res.cancel) {
                                        uni.showToast({
                                            title: '您尚未开启接收通知的权限',
                                            icon: 'none'
                                        })
                                    }
                                },
                            })
                        } else {           //未封禁,则触发订阅消息
                            _this.subsribe()
                        }
                    },
                })
            },

//将模板消息id三个分为一组,data为所有的模板消息id组成的数组
            splitArray(data) {
                let result = [];
                for (let i = 0; i < data.length; i += 3) {
                    result.push(data.slice(i, i + 3));
                }
                this.templateIdArray = result
            },

//订阅消息

  subsribe() {
                const _this = this
                    uni.requestSubscribeMessage({
                        tmplIds: _this.templateIdArray[0], //前三个模板消息
                        success(res) {
                            console.log(_this.templateIdArray[0])
                            console.log(res)
                            uni.showModal({
                                content: '确认是否下单',
                                showCancel: true,
                                success: res => {
                                    if (res.confirm) {
                                        uni.requestSubscribeMessage({
                                            tmplIds: _this.templateIdArray[1],//后三个模板消息
                                            success(res) {
                                                _this.createOrder()                //用户订阅完消息后,需要触发的函数
                                            }
                                        })
                                    }else{
                                        return
                                    }
                                }
                            });
                        }
                    })
            },

效果如图所示

 

 

### 微信小程序实现订阅消息功能 #### 启用并配置消息推送 为了使微信小程序能够发送订阅消息,需先完成一些准备工作。这包括但不限于准备小程序账号、搭建开发环境,并确保所使用的框架(如uniapp)和后端技术栈(如Spring Boot)都已就绪[^1]。 #### 订阅消息的工作流程 订阅消息的功能允许小程序向用户传递特定的信息,而这一过程依赖于微信的服务通知机制来最终触达用户设备。具体来说,当小程序希望传达某条信息时,它会将所需的数据连同目标用户的唯一标识一同提交给微信服务器;随后,由微信服务器负责验证这些信息的有效性和合法性,在确认无误之后再转发至对应的微信客户端上显示出来[^3]。 #### 开发指南概览 对于开发者而言,想要成功集成此特性,则需要遵循官方文档指导下的几个关键环节: - **后端部分**:构建接口用于组装待发送的消息体结构并向微信公众平台API发起调用来触发实际的通知动作。 ```javascript // 前端示例代码 (UniApp) wx.requestSubscribeMessage({ tmplIds: ['your_template_id'], success(res){ console.log('用户同意订阅', res); }, fail(err){ console.error('获取权限失败', err); } }); ``` ```java // 后端示例代码片段 (Spring Boot) @PostMapping("/sendTemplateMsg") public ResponseEntity<String> sendTemplateMsg(@RequestBody Map<String, String> params) { // 构建HTTP POST 请求... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值