uniapp vue3 unipush2.0 调用系统通知功能流程

进入dcloud官网:

复制代码
https://dev.dcloud.net.cn/

添加uniCloud服务空间:

这里是勾选了两个

选择刚刚创建的服务空间

根据官方提供添加3个表

开始编写代码

复制代码
// 简单的使用示例
'use strict';
const uniPush = uniCloud.getPushManager({appId:"__UNI__xxxxxxx"}) //注意这里需要传入你的应用appId,用于指定接收消息的客户端
exports.main = async (event, context) => {
	return await uniPush.sendMessage({
		"push_clientid": "d946cbxxxxxxxxxxxxxxxxx",//在APP.vue文件调用uni.getPushClientId方法中获取
		"title": "系统通知",	
		"content": "系统通知内容",
		"payload": {
			"text":"体验一下uni-push2.0"
		}
	})
};

App.vue代码:

复制代码
<script>
	export default {
		onLaunch: function() {
			console.log('App Launch')
			//#ifdef APP-PLUS
			checkNotificationAuthorized();
			//#endif
			uni.getPushClientId({
				success: (res) => {
					console.log(11111, res);
					uni.setStorageSync("cid", res.cid)
				},
				fail(err) {
					console.log(err)
				}
			});
			uni.onPushMessage((res) => {
				// 监听通知栏消息的点击  
				if (res.type == 'click') {
					// 如果需要跳转app内指定页面,则自己实现下方的跳转代码。  
					uni.navigateTo({
						url: '点击跳转的页面'
					})
				}
				// 监听在线推送消息,若云函数设置了 "force_notification":true,则不会触发此 receive。  
				if (res.type == 'receive') {
					console.log("接收到的消息内容", res.payload);
				}
			})
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},


	}
	// 检查app是否开启了通知权限 安卓苹果通用
	function checkNotificationAuthorized() {
		const notificationAuthorized = uni.getAppAuthorizeSetting().notificationAuthorized
		if (notificationAuthorized !== 'authorized') {
			uni.showModal({
				title: '通知权限',
				content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',
				confirmText: '去设置',
				showCancel: false,
				success: (res) => {
					if (res.confirm) uni.openAppAuthorizeSetting()
				}
			});
		}
	}
</script>

发送通知代码:

复制代码
<template>
	<view class="head">
		<button type="default" @click="onMessageInform">通知</button>
	</view>
</template>

<script setup>
	import {
		ref,
		reactive,
		watch
	} from "vue"
	// 通知
	const onMessageInform = async () => {
		uni.createPushMessage({
			title: "测试通知功能",
			content: "发送成功啦",
			success: (res) => {
				console.log("发送成功", res);
			},
			fail(err) {
				console.log(err)
			}
		})
	}
</script>

然后我们用手机运行app

相关推荐
web打印社区6 小时前
网页静默打印热敏小票:从 HTML 到出纸的完整指南
前端·javascript·vue.js·electron·pdf·html
剪刀石头布啊7 小时前
设计一个多计时任务的任务管理功能
前端
ModyQyW8 小时前
vite-plugin-uni-manifest 更新了什么
前端·typescript·uni-app
Asize9 小时前
AI 协作开发新范式:我用 SDD 做了个排版 npm 包
前端·人工智能
kyriewen10 小时前
我把今年流传的前端 AI 面试题整理了一遍——4 类场景题+回答框架(附速查表)
前端·面试·程序员
计算机魔术师11 小时前
国产多模态模型正面硬刚Opus旗舰:差距从30%缩到3%
前端
风骏时光牛马11 小时前
程序员进阶:深度思考,解锁职场成长的底层逻辑
前端
IT_陈寒11 小时前
用了Proxy才发现以前的JavaScript白写了
前端·人工智能·后端
爱丶不疚12 小时前
Eval: Agent 说的 Eval 是什么?从单测、TDD 到 Sentry 聊起
前端·ai编程·vibecoding
求道於盲12 小时前
python中的类型标注
前端