记微信小程序订阅消息使用及拒绝后引导启用

本文介绍了一种在微信小程序中实现订阅消息授权的方法,并通过代码示例详细展示了如何检查用户的订阅状态,以及如何引导未授权用户进行授权操作。

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

原文

注意

  1. 订阅消息必需由tap事件触发
  2. 保持以上选择不在询问,这辈子都不会再弹窗了,需要openSetting去设置页打开。没勾选每次都会弹窗。用户引导很重要。

代码

// 判断是否授权微信订阅消息
    auditSubscriptionsSetting() {
      let that = this
      const tmplId = '把这个换成你自己的模板ID就彳亍了'
      wx.getSetting({
        withSubscriptions: true,
        success(res) {
          console.log(res)
          if (res.subscriptionsSetting && res.subscriptionsSetting.mainSwitch) {
            if (
              res.subscriptionsSetting.itemSettings &&
              res.subscriptionsSetting.itemSettings[tmplId]
            ) {
              let item = res.subscriptionsSetting.itemSettings[tmplId]
              if (item == 'reject') {
                console.log('提示:用户拒绝订阅消息')
                that.dingyueComfirm(tmplId)
              } else if (item == 'accept') {
                console.log('提示:您已经开启订阅消息')
              } else if (item == 'ban') {
                console.log('提示:您已经被后台封禁')
              }
            } else {
              console.log('提示:用户没有勾选订阅消息或者没有状态')
              that.dingyueComfirm(tmplId)
            }
          } else {
            console.log('提示:订阅消息主开关没打开')
            that.dingyueComfirm(tmplId)
          }
        }
      })
    },
// 订阅信息
    dingyueComfirm: function(tmplId) {
      wx.showModal({
        title: '订阅消息',
        content: '请同意我们给您推送信息,以便接受租户提交审核提醒。',
        success: res => {
          if (res.confirm) {
            wx.requestSubscribeMessage({
              tmplIds: [tmplId],
              success: res => {
                if (res[tmplId] === 'accept') {
                  wx.showToast({
                    title: '订阅成功!',
                    icon: 'success'
                  })
                } else if (res[tmplId] == 'reject') {
                  //引导用户,手动引导用户点击按钮,去设置页开启,## Modals是自定义组件
                  wx.showModal({
                    title: '订阅消息',
                    content: '您当前拒绝接受消息通知,是否去开启',
                    confirmText: '开启授权',
                    confirmColor: '#345391',
                    cancelText: '仍然拒绝',
                    cancelColor: '#999999',
                    success(res) {
                      if (res.confirm) {
                        console.log('用户点击确定')
                        wx.openSetting({
                          success(res) {
                            console.log(res.authSetting)
                          },
                          fail(err) {
                            //失败
                            console.log(err)
                          }
                        })
                      } else if (res.cancel) {
                        console.log('用户点击取消')
                      }
                    }
                  })
                }
              },
              fail(err) {
                //失败
                console.log(err)
              }
            })
          }
        }
      })
    },
在Java中实现微信小程序订阅消息通常涉及到微信开放平台提供的JSSDK (JavaScript SDK)。首先,你需要在微信公众平台上注册小程序,并获取到AppID和AppSecret。 以下是基本步骤: 1. **引入依赖**: 在项目中引入微信JSAPI的库,如`wx.min.js`。这个文件包含了处理微信交互的JavaScript函数。 2. **注册事件接收者**: 在HTML中,通过`<script>`标签加载微信JSAPI,然后注册一个全局的事件接收器,例如: ```javascript wx.config({ debug: false, // 开发环境开启调试 appId: 'your_app_id', // 小程序AppID timestamp: '', // 获取到的时间戳 nonceStr: '', // 随机字符串 signature: '', // 签名,由以上信息计算得出 jsApiList: ['onMessage'] // 需要启用消息事件接口 }); // 注册事件接收器 wx.onMessage(function(event) { console.log('Received message:', event); handleSubscribeMessage(event); }); ``` 3. **处理订阅消息**: `handleSubscribeMessage` 函数是自定义的,当用户点击"消息免打扰"开关并开启时,会触发此函数。你可以在这里编写具体的业务逻辑,比如保存用户的设置或者发送确认通知。 4. **服务器端验证**: 当用户设置消息免打扰后,需要向服务器发送请求更新用户的设置,服务器端需要验证请求的有效性,并存储相应的状态。 5. **推送服务**: 如果有定时或主动推送的需求,可以利用微信的客服消息或者模板消息功能,但这已经超出了纯前端订阅消息的范围,需要结合后端服务来实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值