微信小程序從0到實現發送訂閱消息完整版——帶你脫坑

廢話不多比比,在開發微信小程序進行消息推送時遇到了麻煩 耽擱了一下午 ,所以把這些麻煩都記錄一下 希望對你也有用

在這裏插入圖片描述
根據微信小程序官方文檔的提示我們的模板消息在2020 年 1 月 10 號全面下架,所以要實現功能我們就要開通訂閱消息

踩坑一設置服務類目

在我第一次進入訂閱消息模塊時,讓我點擊開通訂閱消息 當我點擊開通按鈕 提示讓我微信後臺設置服務類目

點擊設置中 完善小程序信息後 可查看自己的服務條目是否有 有的話再次進入訂閱消息中即可開通使用
在這裏插入圖片描述
ps:訂閱消息模塊中可以自定義消息模板 但是需要審覈3-7天 建議在公共模板庫中查詢自己想要的模板點擊選用 可以我就不詳細使用過程了 很簡單 類似之前我們的模板消息

踩坑二wx.requestSubscribeMessage使用失敗,一直不彈框?

在這裏插入圖片描述
檢查你的基礎庫版本 一定要設置爲高版本 低版本的有點在多條權限時只顯示一條 有的直接導致不彈窗 這裏建議設置爲最新的

踩坑三 多個權限申請 彈窗只顯示單條記錄 且彈窗體於小程序開發文檔不一致

我設置好的彈窗體:
在這裏插入圖片描述
微信開發文檔的彈窗體:
在這裏插入圖片描述
請檢查你的真機調試的版本是否爲最新版本 我的不是 當我更新好之後就顯示成功了
最最重要的代碼實現來了

//權限彈窗代碼
const tmplId = 'rV_13VS_fEQONMZ01D4YOTKDnM8SpQiEFYYqFM-RA1s'
      wx.requestSubscribeMessage({
        tmplIds: [tmplId],//tmplIds爲我們訂閱消息模塊中申請的模板id
        success(res) {
          if (res[tmplId]=='accept'){
            wx.showToast({
            title: '授權成功',
           })
          }   
        }
      })

在這裏插入圖片描述
以及我們點擊授權過後打印的res中的數據(下圖爲申請2個訂閱消息時都允許和只允許一次的結果)
在這裏插入圖片描述
完整代碼:
雲函數index.js的代碼

// 雲函數入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 雲函數入口函數
exports.main = async (event, context) => {
  try{
  //templateId 訂閱消息模塊id
    const templateId = 'rV_13VS_fEQONMZ01D4YOTKDnM8SpQiEFYYqFM-RA1s'
    const wxContext = cloud.getWXContext()
    const result = await cloud.openapi.subscribeMessage.send({
      touser: wxContext.OPENID,
      page: `/pages/blog-comment/blog-comment?blogId=${event.blogId}`,//查看的頁面
      data: {
      //這裏的參數時我們訂閱消息模塊中要顯示的數據 也可以在小程序中通過傳參的方式進行動態賦值 我這裏寫死了
      //參數名稱詳情看下圖
        phrase1: {
          value: '評價成功'
        },
        thing2: {
          value: '弟弟救我啊'
        }
      },
      templateId: templateId,

    })
    console.log(result)
    return result


  }catch(err){
    console.log(err)
    return err
  }
 
  
}

這裏根據你選擇的詳細內容名稱
在這裏插入圖片描述
config.json

{
  "permissions": {
    "openapi": [
      "subscribeMessage.send"
    ]
  }
}

小程序中頁面的調用

  onSend(){
     
       if(this.data.content.trim()==''){
          wx.showModal({
            title: '評論內容不能爲空',
            content: '',
          })
          return
       }

      const tmplId = 'rV_13VS_fEQONMZ01D4YOTKDnM8SpQiEFYYqFM-RA1s'
      wx.requestSubscribeMessage({
        tmplIds: [tmplId],
        success(res) {
          if (res[tmplId]=='accept'){
            wx.cloud.callFunction({//調用雲函數
              name: 'messageSend',//你的雲函數名稱

            }).then((res) => {
              wx.showToast({
                title: '完成',
              })
            })
          }
         
        }
      })
      }

在這裏插入圖片描述
ok這就完成了訂閱消息的集成
以及如果你的微信小程序之前使用過模板消息集成推送 如果運行還是報 模板消息在2020 年 1 月 10 號全面下架請移步微信官方文檔等錯誤時 請檢查你的wxml代碼 將你的form標籤還原到之前的標籤就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章