乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      小程序訂閱消息(服務(wù)通知)實(shí)現(xiàn) wx.requestSubscribeMessage...

       孤風(fēng)卓影 2022-06-17 發(fā)布于河南

      先上效果圖:

      最近做了一個(gè)小程序的服務(wù)通知,雖然做好了,但過程還是比較坎坷,記錄下,希望能給需要的伙伴一個(gè)參考

      先上文檔:小程序服務(wù)通知訂閱消息開發(fā)文檔

      第一步:根據(jù)官方文來,先在微信公眾平臺(tái)登錄小程序后臺(tái)配置模板,獲取模板id:,這塊的模版可以在公共模版庫里選。也可以新申請(qǐng),但是需要3-7天才能出審核結(jié)果。

      下面是模版生成的效果圖。
      在這里插入圖片描述

      第二步,獲取下發(fā)權(quán)限
      在獲取下發(fā)權(quán)限之前,需要先獲取小程序code和訂閱消息的模板id給服務(wù)端,以便后臺(tái)人員進(jìn)行服務(wù)端配置

      // 這里是獲取下發(fā)權(quán)限地方,根據(jù)官方文檔,可以根據(jù)  wx.getSetting() 的 withSubscriptions   這個(gè)參數(shù)獲取用戶是否打開訂閱消息總開關(guān)。后面我們需要獲取用戶是否同意總是同意消息推送。所以這里要給它設(shè)置為true 。
      wx.getSetting({
            withSubscriptions: true,   //  這里設(shè)置為true,下面才會(huì)返回mainSwitch
            success: function(res){   
            
              // 調(diào)起授權(quán)界面彈窗
              if (res.subscriptionsSetting.mainSwitch) {  // 用戶打開了訂閱消息總開關(guān)
                if (res.subscriptionsSetting.itemSettings != null) {   // 用戶同意總是保持是否推送消息的選擇, 這里表示以后不會(huì)再拉起推送消息的授權(quán)
                  let moIdState = res.subscriptionsSetting.itemSettings[tmplIds];  // 用戶同意的消息模板id
                  if(moIdState === 'accept'){   
                    console.log('接受了消息推送');
      
                  }else if(moIdState === 'reject'){
                    console.log("拒絕消息推送");
      
                  }else if(moIdState === 'ban'){
                    console.log("已被后臺(tái)封禁");
      
                  }
                }else {
                	// 當(dāng)用戶沒有點(diǎn)擊 ’總是保持以上選擇,不再詢問'  按鈕。那每次執(zhí)到這都會(huì)拉起授權(quán)彈窗
                  wx.showModal({
                    title: '提示',
                    content:'請(qǐng)授權(quán)開通服務(wù)通知',
                    showCancel: true,
                    success: function (ress) {
                      if (ress.confirm) {  
                        wx.requestSubscribeMessage({   // 調(diào)起消息訂閱界面
                          tmplIds: [tmplIds],
                          success (res) { 
                            console.log('訂閱消息 成功 ');
                            console.log(res);
                          },
                          fail (er){
                            console.log("訂閱消息 失敗 ");
                            console.log(er);
                          }
                        })     
                              
                      }
                    }
                  })
                }
      
              }else {
                console.log('訂閱消息未開啟')
              }      
            },
            fail: function(error){
              console.log(error);
            },
          })
      

      到這里小程序端的代碼就完了,第三步就是服務(wù)端要做的事情了。

      這里說下需要注意的點(diǎn):
      1.配置模板獲取模板id,是在小程序后臺(tái),而不是關(guān)聯(lián)的公眾號(hào)后臺(tái)?。。?/b>

      2. 授權(quán)彈窗需要用戶點(diǎn)擊才能拉起,比如直接在 onload 方法中是無法調(diào)起的,可以在需要拉起的地方做一個(gè)彈窗詢問,引導(dǎo)用戶點(diǎn)擊拉起授權(quán)
      3.授權(quán)彈窗上的,總是保持以上選擇,不再詢問 這個(gè)選項(xiàng),只有真機(jī)上有,模擬器上只有是否同意消息推送彈窗。建議測(cè)試直接上真機(jī)
      4.后端 subscribeMessage.send 接口的請(qǐng)求參數(shù) page , 配置路徑為 pages/index/index
      5.在小程序的社區(qū)發(fā)現(xiàn)有小伙伴說,真機(jī)測(cè)試不敢點(diǎn) 總是詢問 的按鈕。怕點(diǎn)了,后面就再也沒辦法拉起授權(quán)測(cè)試了。其實(shí)開發(fā)人員一般都是用自己的微信測(cè)試的,微信開發(fā)工具上的清緩存菜單里面就有清除授權(quán)的選項(xiàng),直接在開發(fā)工具里清掉,就相當(dāng)于清掉了手機(jī)的授權(quán)。重新編譯預(yù)覽就能看見效果。 還是放一下圖吧:

      在這里插入圖片描述

      在加上一個(gè)需要特別特別重要的問題:授權(quán)彈窗上的總是保持以上選擇,意思是不再調(diào)起授權(quán)彈窗。但是下次推送消息還是需要用戶點(diǎn)擊授權(quán)的。這塊訂閱消息的邏輯是矛盾的。因?yàn)辄c(diǎn)了總是,那么授權(quán)彈窗是無法再次調(diào)起的,那用戶也就沒有授權(quán)入口。又怎么授權(quán)呢。官方解釋可以在小程序右上角設(shè)置里面打開權(quán)限。但up主親測(cè),當(dāng)后臺(tái)推送消息拒絕時(shí),小程序設(shè)置訂閱消息開啟無效。依然接收不到。
      可以參考這個(gè):https://developers.weixin.qq.com/community/develop/doc/00002cae8c0c90766f8ab3a0451000?highLine=43101%2520%25E6%2580%25BB%25E6%2598%25AF
      https://developers.weixin.qq.com/community/develop/article/doc/0006ac060e4e80183bc9654b856013(
      微信官方解釋:https://developers.weixin.qq.com/community/develop/doc/00008a8a7d8310b6bf4975b635a401


      2021.12.29 更新
      上面遺留的問題,點(diǎn)擊總是之后,無法進(jìn)行再次訂閱,評(píng)論區(qū)有童鞋提出了解決方案。
      這里更新下:
      點(diǎn)擊按鈕直接調(diào)wx.requestSubscribeMessage即可,不做用戶是否打開訂閱消息的判斷,這樣在點(diǎn)擊總是...之后,雖然沒有詢問框,依然可以訂閱(已親測(cè),在此感謝小糖同學(xué)~??)

      wx.requestSubscribeMessage({
         tmplIds: tempId,
         success: res => {
           console.log('調(diào)起成功');
           if (res[tempId[0]] === 'accept') {
               console.log('允許')
           }
           if (res[tempId[0]] === 'reject') {
             console.log('拒絕')
           }
         },
         fail: err => {
           if (err.errCode == 20004) {
             console.log('關(guān)閉小程序主開關(guān)')
           } else {
             console.log('訂閱失敗')
           }
         }
       });
      

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多