uniApp push推送消息

这段代码主要涉及移动端的消息推送处理,包括设置角标数、监听系统通知栏消息点击和接收事件。当接收到Apple APNS消息或特定类型的消息时,会更新角标数并触发相应业务逻辑。同时,代码还实现了更新客户端ID的功能。
import request from '@/common/request';

export function setBadgeNumber(num){
	// #ifdef APP-PLUS
	plus.runtime.setBadgeNumber(num);
	// #endif 
}

export function bindMsgClick(){
	//监听系统通知栏消息点击事件
	plus.push.addEventListener('click', function(msg){  
	    //处理点击消息的业务逻辑代码
		//{title:"标题",content:"内容",payload:"自定义数据"}
		console.log(msg)
		// uni.redirectTo({
		//   url: '/pages/org/notice/notice?reflush=true'
		// })
	}, false);  	
	plus.push.addEventListener("receive", function(msg) {  
		let content =  JSON.parse(msg.content)
		console.log("receive", msg)
		if ( msg.aps ) {  // Apple APNS message
			//APNS下发的消息,应用在前台
			setBadgeNumber(1)
		} else if ( content.type && content.type == "receive" ) {   // 特殊payload标识本地创建的消息  
			//接收到在线透传消息
			plus.push.createMessage(content.con, content.payload, {title: content.title});  
			console.log(content.payload)
			setBadgeNumber(1)
			uni.$emit("reflushData",content.payload)
		} else {    
		   //本地创建的消息,通常不需要处理
		   //注意:不要在这种情况下再此调用plus.push.createMessage,从而引起循环创建本地消息   
		}  
	}, false );
}

export function updateCid(){
	var pinf = plus.push.getClientInfo();
	console.log('client',pinf.clientid)
	request.post("/blade-user/update-client",{client:pinf.clientid})
}

### UniApp 中实现 Push 消息推送 #### 集成 uniPush 推送服务 为了在 UniApp 应用程序中启用消息推送功能,需先集成 uniPush 服务。这涉及几个关键步骤: - **注册并配置应用**:前往 uniPush 官方网站完成账号注册,并按照指引创建新应用实例[^1]。 - **初始化 SDK**:对于 Android 平台,在 `Android` 的配置文件内指定特定参数来初始化 SDK。例如,`initende` 参数应按官方说明设置[^3]。 #### 实现在线与离线推送 消息推送主要分为两种情况——在线推送和离线推送。前者指当设备处于联网状态时即时接收到的通知;后者则是在目标设备不活跃的情况下存储待发的消息,一旦连接恢复即刻传送至客户端[^2]。 #### 测试推送效果 有多种途径可以验证推送机制的有效性: - 使用 uniPush 控制面板直接向已注册的应用发送通知。 - 构建 API 来模拟服务器端行为,利用工具如 Apipost 发起请求触发推送事件。 #### 利用云函数增强推送能力 借助于 uniCloud 提供的云开发环境,可以通过编写自定义云函数进一步扩展推送逻辑。具体操作包括但不限于新增依赖项 `uni-cloud-push` 至项目中的云端脚本部分[^4]。 ```javascript // 示例代码片段展示如何调用云函数执行推送任务 const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event, context) => { try { const result = await cloud.openapi.push.send({ touser: event.openid, page: 'index', data: { title: "测试标题", content: "这是测试内容" } }) console.log(result) return result } catch(e){ console.error(e) } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值