suscripción al subprograma WeChat uniapp (mensaje de suscripción único)

En primer lugar, debemos comprender algunos conceptos básicos de los applets de WeChat para saber qué vamos a hacer:

  • Solo hay dos formas de llamar a la suscripción de mensajes del subprograma WeChat:
    1. El usuario hace clic manualmente en el botón
    2. Se invoca la devolución de llamada de pago

  • Se pueden suscribir hasta 3 mensajes en una llamada

  • Después de que aparezca el applet, la situación en la que se puede hacer clic
    1. Simplemente haga clic en el botón cancelar/confirmar
    2. Marque mantener siempre la selección anterior
    3. Marque el rechazo, ya no pregunte

  • Después de que se envíe la suscripción única, no será válida y el usuario deberá hacer clic para aceptar nuevamente

1. uniapp llama al documento
del subprograma WeChat Nota: antes de esto, marque mantener siempre las opciones anteriores, llame a esta interfaz cuando haga clic en el botón, se puede llamar con éxito, pero el cuadro no aparecerá, necesitamos ver en este momento si es un aviso de cuadro emergente o una devolución de llamada silenciosa sin hacer un sonido de acuerdo con los requisitos de la tarea

 uni.requestSubscribeMessage({
    
    
      tmplIds: ids,
      success(res) {
    
    
     	 //消息订阅调起成功,返回值'accept'、'reject'、'ban'分别代表用户对此条订阅是同意、拒绝、后台禁用
      },
      fail(err) {
    
    
      	 //消息订阅调起失败
      },
      complete() {
    
    
        // 无论确定还是取消,只要点击按钮后都会执行
      },
    })

2. La premisa de implementar el método anterior es que debemos juzgar si el fondo está bloqueado. Si está bloqueado, guíe al usuario para que lo abra. Si no está bloqueado, simplemente llame directamente a la suscripción de mensajes de WeChat.

   uni.getSetting({
    
    
      withSubscriptions: true,
      success(alwaysRes) {
    
    
        if (!alwaysRes.subscriptionsSetting.mainSwitch) {
    
    
        	//后台封禁了
        	//引导用户打开权限
        	uni.showModal({
    
    
      		  title: '是否重新授权消息订阅功能',
      		  success(res) {
    
    
        	    if (res.confirm) {
    
    
          		  uni.openSetting({
    
    
                    success(res) {
    
    
                      if (res.subscriptionsSetting) {
    
    
                        Toast('开启权限成功')
                      }
                    },
                   fail() {
    
    
                     Toast('开启权限失败')
                   },
                 })
                } else if (res.cancel) {
    
    
                  Toast('拒绝开启开启权限')
                }
             },
          })
        } else {
    
    
        	//后台未封禁
        	//alwaysRes.subscriptionsSetting.itemSettings != null 是检测订阅消息中是否有始终保持不再通知的选项
        }
      },
    })

Guess you like

Origin blog.csdn.net/qq_46566911/article/details/130604929