uniapp+腾讯云IM聊天时,监听接受消息配合unipush在线推送通知栏

该博客介绍了如何在uniapp中集成腾讯云IM,包括在app.vue中加载SDK并监听消息接收。当收到新消息时,会创建系统通知,并在点击通知时跳转至聊天页面。同时,对于离线消息,讨论了获取cid以实现推送通知,并提供了获取cid的方法。此外,还提及了离线消息配置厂商的必要性。
摘要由CSDN通过智能技术生成

首先需要uniapp项目引入腾讯云IM,app.vue需要加载腾讯云SDK并且READY。在收发消息没有问题后,监听消息并在线推送通知栏(离线需要配置厂商)

uniapp监听接收消息

写在app.vue里
onLaunch()方法内写如下:


uni.$TUIKit.on(uni.$TUIKitEvent.MESSAGE_RECEIVED,
   this.$onMessageReceived, this); // #ifdef APP-PLUS
   			//点击系统通知的推送跳转到指定的界面
   						plus.push.addEventListener("click", function(msg) {				
   							setTimeout(function() {
   								console.log('plus.push',msg)
   								uni.navigateTo({
   									url: '/pages/TUIKit/chat?name='+(msg.payload.nick?msg.payload.nick:'')+'&conversationID=C2C'+msg.payload.to+'&fromID='+msg.payload.from
   								})
   							}, 1000)
   							plus.push.clear();
   						}, false);
   						// #endif

methods里写
$onMessageReceived方法

// 收到的消息
			

$onMessageReceived(value) {
   				// 若需修改消息,需将内存的消息复制一份,不能直接更改消息,防止修复内存消息,导致其他消息监听处发生消息错误
   				console.log('$onMessageReceived',value)
   				const event = value;
   				const list = [];
   				event.data.forEach(item => { uni.$TUIKit.getMyProfile().then(res => {
   							if(item.to == res.data.userID){
   								uni.createPushMessage({
   														title:'仟籽幼儿园',
   														content:'您收到一条新消息',
   														payload:JSON.stringify(item),
   														success:(res)=> {
   															console.log(111111)
   														},
   														fail:(res)=>{
   															console.log(222)
   														}
   													})
   							}
   						})
   				}); 			},

顺便提一下如果是离线消息需要推送需要配置厂商,此时需要获取cid,以下是获取cid的方法

uni.getPushClientId({
			 		success: (res) => {
			 			console.log(res.cid);
			 		},
			 		fail(err) {
			 			console.log(err)
			 		}
			 	})

写在app.vue里,如果获取不到可以尝试延时获取等方法,或者第一次可能获取不到后面就获取到了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值