收藏
回答

wx-open-subscribe 重复触发订阅时,订阅按钮无法再次渲染?

按照官方文档上示例:
<wx-open-subscribe template="TenXXXXXXjCp4XXXXXXXXXXXXXX" id="subscribe-btn">
  <script type="text/wxtag-template" slot="style">
    <style>
      .subscribe-btn {
        color: #fff;
        background-color: #07c160;
      }
    </style>
  </script>
  <script type="text/wxtag-template">
    <button class="subscribe-btn">
      一次性模版消息订阅              
    </button>
  </script>
</wx-open-subscribe>
<script>
var btn = document.getElementById('subscribe-btn');
btn.addEventListener('success', function (e) {            
  console.log('success', e.detail);
});   
btn.addEventListener('error',function (e) {             
  console.log('fail', e.detail);
});


 /**
  * 获取微信签名
  */
function getSignature(){
    $.ajax({
          type:"post",
          url:"/*****/getSignature.do",
          data:{"path":window.location.href},
          dataType:"json",
          async:false,
       success:function(res){
             wx.config({
             debug: true,
             appId: res.appId, // 必填,公众号的唯一标识
             timestamp: res.timestamp, // 必填,生成签名的时间戳
             nonceStr: res.noncestr, // 必填,生成签名的随机串
             signature: res.signature,// 必填,签名
             jsApiList: [],//必须要不调用小程序标签渲染不出来
             openTagList: ['wx-open-subscribe']//可选,需要使用的开放标签列表,例如['wx-open-launch-app','wx-open-subscribe]
          });
          wx.ready(function () {
             alert('ready');//调用成功的时候执行 包括 用户确认授权后执行。
             console.log("ready");
          });

          wx.error(function (res) {
             // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中
             alert("错误", res);
             console.log("res", res);
          });
       }
    })
}
</script>


场景1:
无订阅过的用户,首次触发 button 一次性模版消息订阅按钮,页面底部可以正常调起客户端服务号订阅通知界面,供用户选择是否允许订阅操作

场景2:
已经订阅过的用户,再次触发 button 一次性模版消息订阅按钮,页面底部无法正常调起客户端服务号订阅通知界面,供用户选择是否允许订阅操作,
且按钮操作返回 subscribeDetails 都有订阅状态信息

场景3:
已经服务通知里取消了订阅的用户,再次触发 button 一次性模版消息订阅按钮,页面底部无法正常调起客户端服务号订阅通知界面,供用户选择是否允许订阅操作,
且按钮操作返回 subscribeDetails 都有订阅状态信息

回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容