uni-app 使用微信小程序消息推送

uni-app 開發小程序時會用到推送 前端基于基礎用法做一個封裝

import {
    appid,
    secret
} from "@/conf/website.js"

/**
 * @description 用戶打開訂閱提示
 * @param {Array}tmplId  模版id
 * */
export const openSubscription = (tmplIds) => {
    uni.requestSubscribeMessage({
        tmplIds: tmplIds,
        success: (res) => {
            // 訂閱成功
        },
        fail: function(err) {
            uni.showToast({
                title: err,
                duration: 2000,
                icon: 'error'
            });
        }
    })
}

/**
 * @description 獲取微信的access_token
 * */
function get_wx_access_token() {
    return uni.request({
        method: 'get',
        url: `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}`,
        dataType: 'json',
        timeout: 30000
    }).then(res => {
        let [err, success] = res
        if (success.statusCode == 200) {
            return success.data.access_token
        }
    })
}

/**
 * @description 發送訂閱消息
 * @param {String}miniprogram_state  小程序狀態
 * @param {String}openid  用戶openid
 * @param {String}tmplId  模版id
 * @param {String}params  傳遞參數
 * */
export const send_msg = async (miniprogram_state = 'developer', openid, tmplId, params) => {
    let wx_access_token = await get_wx_access_token()
    return uni.request({
        url: `https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=${wx_access_token}`,
        method: "POST",
        data: {
            access_token: wx_access_token, //access_token
            touser: `${openid}`, //用戶openid
            template_id: `${tmplId}`, //模板ID
            page: "", //進入哪個頁面   非必傳
            data: {
                ...params //自己選擇模版的參數 'key':{value:'...'}
            },
            miniprogram_state: "developer", //developer為開發版;trial為體驗版;formal為正式版;非必傳
        }
    })
}


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。