uniapp初步完成开通消息推送uni-push

官方API文档地址:uni-app官网

功能理解:

        消息推送分为: 在线推送 、离线推送
        在线推送场景:

            A、可在uniCloud开发者中心编辑推送消息内容,面向全部在线用户或者单个cid用户推送

            B、app内a用户操作完成 需 向 b用户发送消息提示时

             A场景只需在uniCloud开发者中心编辑推送消息内容,前端监听消息推送uni.onPushMessage,然后在app内写消息提示框或者创建本地通知栏消息uni.createPushMessage 进行消息推送

              B场景需a用户触发事件,触发后端接口,后端接口中获取 接受推送人的 cid,然后调用uniPush.sendMessage(OBJECT) 向设定的(单个、群组、全体)设备,即时或定时推送消息,前端同A场景

实现步骤:

        一、Dcloud 开发者平台 开通uni-push 开发者中心

        二、在uniapp项目manifest.json 配置文件 APP模块配置中勾选Push(消息推送)

       三、 在项目中 app.vue进行消息推送监听
onShow(() => {	
// 消息推送

        // 获取当前用户cid, 无使用场景可不使用
		uni.getPushClientId({
			success(res) {
				console.log(res.cid);
				
			}
		})
		
		// 监听消息推送
		uni.onPushMessage(res => {
			const { title, content  } = { ...res.data }
			if(res.type === 'receive') {
				// 创建本地通知栏消息
				uni.createPushMessage({
					title,
					content,
					icon: "配德美",
				    success() {
				    	console.log("推送成功");
				    },
					fail() {
						console.log("推送失败");
					}
				})
			}
		})
	});
四、创建uniCloud开发环境,完成自定义推送,或者用户间订单交互类事件推送

创建完右键关联云服务空间,创建一个云函数文件夹unipush,新建两个文件index.js, package.json

index.js

'use strict';
 
const uniPush = uniCloud.getPushManager({appId:"__UNI__B760ADF"}) //注意这里需要传入你的应用appId  
exports.main = async (event, context) => {  
	let obj = JSON.parse(event.body)
    return await uniPush.sendMessage({  
        //填写上一步在uni-app客户端获取到的客户端推送标识push_clientid
        "push_clientid": obj.clientid,     
        "force_notification":true,  //填写true,客户端就会自动创建“通知栏消息”。  
        "title": obj.title,      
        "content": obj.content,  
        "payload": {  
            "text":"体验一下uni-push2.0"  
        }  
    })  
};

package.json

{
  "name": "unipush",
  "version": "1.0.0",
  "main": "index.js",
  "description": "消息推送",
  "extensions": {
    "uni-cloud-push": {}
  },
  "author": "vini123"
}

鼠标指向unipush文件夹右键: 上传并运行,这是打开Dcoud 开发者中心

点击名称打开服务空间

打开云函数/云对象可以看到生成一条普通云函数

点开详情看到最下面有个云函数URL化

通过调用此url可以根据自己 的需求向 cid用户 推送消息

cid 可以通过登录 或者注册 或者获取用户信息时更新到用户表中, 通过用户ID 关联cid 进行用户间信息推送

离线推送需要在个应用市场申请推送服务:以下以vivo为例

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值