日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

我在云開發基礎課程里給大家講過小程序消息推送功能的實現,等下會給大家回顧下。但是有時候我們如果想實現定時推送的功能該怎么做呢

一,普通訂閱消息的發送

我們先來看下訂閱消息的官方簡介。

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


接下來我們就來借助云開發,來快速實現小程序消息推送的功能。

1-1,獲取模板 ID

這一步和我們之前的模板消息推送是一樣的,也是先添加模板,然后拿到模板id

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


首先是開通訂閱消息功能,很簡單,如下圖

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 

由于長期性訂閱消息,目前僅向政務民生、醫療、交通、金融、教育等線下公共服務開放,后期將逐步支持到其他線下公共服務業務。僅就線下公共服務這一點,長期性訂閱消息就和大部分開發者無緣了。
所以我們這里只能以使用一次性訂閱消息為例。

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


如上圖,我們從公共模板庫里選擇一個一次性訂閱的模板。然后編輯模板如下圖

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


下圖就是我們添加好的模板,下圖的模板id就是我們需要的。

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 

1-2,請求用戶授權

我們做訂閱消息授權時,只能是用戶點擊或者支付完成后才可以調起來授權彈窗,官方是這么要求的:

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


我們這里用到了
wx.requestSubscribeMessage這個方法,來獲取用戶的授權。

  • 1,編寫index.wxml代碼
  • 2,編寫index.js代碼,實現點擊獲取授權
    這一步tmplIds里的一串字符,就是我們自己添加的模板id
  • 3,點擊按鈕運行效果如下
    開發者工具模擬器上點擊授權彈窗是這樣的:手機上的授權彈窗是這樣的:可以看到,這里顯示的就是我們添加的信息 ‘上課提醒’的模板。細心的同學可以看到, 真機上多了一個 ‘總是保持以上選擇,不再詢問’其實,你自己仔細品一些。也能明白,我們正常訂閱消息授權時,用戶允許的話,你只能推送一次消息。也就是用戶允許一次,我們就可以推送一條消息給用戶,并且這個允許不存在過期。所以我們可以讓用戶盡量多的點擊允許,這樣我們就可以盡量多地給用戶發送消息了。

這里用戶允許后,我們就可以給用戶推送消息了,接下來我們來借助云開發的云函數來實現消息推送功能。

1-3,獲取用戶的opneid

先來看官方爸爸是怎么說的。

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


可以看出官方提供了兩種方式,我們這里使用云調用。說白了就是在云函數里調用推送功能。

  • 推送所需參數
    可以看到我這里用來openapi功能,并且需要用到用戶的opneid,關于openid的獲取,我之前有寫過文章,也錄過視頻的。文章的話,大家去翻下我歷史的文章,視頻的話,點擊這個即可:《借助云函數獲取用戶openid》這里的openid的獲取我就不再詳細講解了,把對應云函數的代碼給大家貼出來。在使用云開發時,有幾點需要注意的
  • 1,需要在project.config.json里創建云函數目錄如下圖
  • 2,需要在App.js里初始化云開發環境
    至于云開發的環境id從哪里拿,我視頻里也講過很多遍了,直接去看我視頻或者翻看我歷史文章即可。《零基礎入門云開發視頻》

1-4,用云函數實現消息推送

我們只需要創建一個云函數如下,然后填入用戶的openid,要跳轉的小程序頁面鏈接,模板內容,模板id即可。通常這些數據都應該傳進來,簡單起見,我就把這里的模板內容寫成固定的。

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 

注意:我在編寫上面的代碼時,推送內容的key必須和小程序模板里的key保持一致,否則就會報如下錯誤。

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 

  • 然后看下調用這個云函數的地方
    如果用戶沒有授權,我們推送會報如下錯誤如果用戶授權過,我們就可以成功推送了,推送后的打印日志如下還記得我們真機上的授權嗎,如果用戶只是點擊了允許,沒有選擇一直允許,那我我們在推送成功一次后,如果再次推送,就需要用戶重新授權。否則,還是會犯這個錯誤的所以我們用戶點擊一次允許,我們就可以推送一次消息,比如,我點擊了4次允許那么我就可以成功地推送4次

效果圖

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


可以看到,我們成功地收到 上課提醒的模板消息,點擊進去,就是我們具體的推送內容

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


其實我這是連續收到了4條消息,因為我點擊了4次允許推送,所以就可以成功地推送4次。

到這里我們就完整地實現模板消息推送功能了,下面我把主要代碼貼給大家,大家也可以私信我獲取完整源碼。

  • index.wxml
<button bindtap="shouquan" type='primary'>獲取訂閱消息授權</button>
<button bindtap="getOpenid">獲取用戶的openid并推送消息</button>
  • index.js
//編程小石頭wechat:2501902696
Page({
  //獲取授權的點擊事件
  shouquan() {
    wx.requestSubscribeMessage({
      tmplIds: ['CFeSWarQLMPyPjwmiy6AV4eB-IZcipu48V8bFLkBzTU'], //這里填入我們生成的模板id
      success(res) {
        console.log('授權成功', res)
      },
      fail(res) {
        console.log('授權失敗', res)
      }
    })
  },
  //獲取用戶的openid
  getOpenid() {
    wx.cloud.callFunction({
      name: "getopenid"
    }).then(res => {
      let openid = res.result.openid
      console.log("獲取openid成功", openid)
      this.send(openid)
    }).catch(res => {
      console.log("獲取openid失敗", res)
    })
  },
  //發送模板消息到指定用戶,推送之前要先獲取用戶的openid
  send(openid) {
    wx.cloud.callFunction({
      name: "sendMsg",
      data: {
        openid: openid
      }
    }).then(res => {
      console.log("推送消息成功", res)
    }).catch(res => {
      console.log("推送消息失敗", res)
    })
  }
})
  • 推送對應的云函數
//編程小石頭wechat:2501902696
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async(event, context) => {
  try {
    const result = await cloud.openapi.subscribeMessage.send({
      touser: event.openid, //要推送給那個用戶
      page: 'pages/index/index', //要跳轉到那個小程序頁面
      data: {//推送的內容
        thing1: {
          value: '小程序入門課程'
        },
        thing6: {
          value: '杭州浙江大學'
        },
        thing7: {
          value: '第一章第一節'
        }
      },
      templateId: 'CFeSWarQLMPyPjwmiy6AV4eB-IZcipu48V8bFLkBzTU' //模板id
    })
    console.log(result)
    return result
  } catch (err) {
    console.log(err)
    return err
  }
}

后面我會分享更多小程序相關的知識出來,請持續關注。

注意:授權一次,只能發送一條消息。

二,定時發送消息

我們上面的用戶授權和發送消息都需要手動點擊才可以實現發送。但是有時候我們需要定時提醒用戶,比如做的鬧鐘小程序,要定時提醒用戶,該怎么做呢,接下來我們就來實現定時發送消息的功能。

  • 注意
    當然了這里還是要先授權才可以發送消息的,同樣也是授權一次可以發送一條消息,所以這里要盡量先多授權幾次

2-1,什么是定時觸發器

我們實現定時發送的功能就是要用到云函數里的定時觸發器,官方介紹如下。

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


大家有時間可以自己去仔細品嘗下

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/triggers.html

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


官方已經教我們怎么寫定時觸發器了

2-2,定時觸發器時間設置規則

建議大家仔細去讀下官方文檔。

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


下面是官方給出的一些示例

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


我這里就取用每隔5秒通過該定時觸發器調用下我們的云函數,實現訂閱消息的發送。

2-3,添加定時觸發器

添加步驟如下圖,我們需要新建一個云函數timer

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


我們要在timer云函數里調用我們的fasong云函數來實現發送功能

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 

然后在timer文件夾下新建一個config.json文件

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


然后給config.json做如下配置

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


注意json里不能有注釋,配置好的觸發器如下

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 

2-4,部署定時觸發器

添加好以后,記得部署觸發器

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 

2-5,定時發送效果

首先看定時觸發器是不是每隔5秒執行了一次

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


然后看手機是否接到了消息

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


可以看出我們手機上每隔5秒也接到了消息。這里還是要記得多授權才可以多接消息。

當然了,我們不可能這樣每隔5秒給客戶發條消息,這樣騷擾到客戶,很容易被封的,所以可以停止觸發器

2-6,停止觸發器

小程序消息推送,訂閱消息的實現,定時推送訂閱消息功能

 


到這里我們的定時發送消息功能也實現了,當然了我們要發給指定用戶,就要先去獲取用戶openid,并且得讓用戶多授權。

分享到:
標簽:程序
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定