微信小程序订阅消息遮罩提示勾选

44 阅读1分钟

9420b3c0d311ea99f7dae936feabb9e.jpg

//subscribeMessage.ts

export const subscribeMessage = (templateIds: string[]) => {
    return new Promise((resolve, reject) => {
        if(!templateIds.length) {
            reject()
            return;
        }
        uni.requestSubscribeMessage({
            tmplIds: templateIds,
            success(res) {
                resolve(res)
            },
            fail(err) {
                reject(err)
            },
          })
    })
    
};

//检测订阅状态
export const getSettingWithSubscriptions = (arr:string[]) => {
    return new Promise((resolve, reject) => {
        uni.getSetting({
            withSubscriptions: true,
            success(res) {
                const authSetting = Object.keys(res.subscriptionsSetting.itemSettings)
                //判断authSetting是否包含arr中的元素
                const isContain = arr.every(item => authSetting.includes(item))
                resolve(isContain)
            },
            fail(err) {
                resolve(true)
            }
        })
    })
}


//使用
  // #ifdef MP
  const MessageList = [
    "KRgghL9B-fabE6m3Xm3fKxxxpzGaa0qr5dk8",
    "4jYY5326okH-0MnSwxxxwNC7Tig2rOW_rTfbQ",
    "r0DOx6pPx5_Mz4tN4SxxxNdw_tkv0dmGQ",
  ]; //订阅-接单提醒,发布需求的订单无人抢单即将失效提醒, 订单状态通知
  const isContain = await getSettingWithSubscriptions(MessageList);
  !isContain && (overlayShow.value = true); //显示遮罩层
  await subscribeMessage(MessageList);
  overlayShow.value = false;
  // #endif