uniapp集成unipush監聽推送,處理兼容ios在線無法收到推送通知問題以及安卓推送處理


此文轉載自:https://blog.csdn.net/weixin_38333426/article/details/112887538#commentBox


前言

uniapp集成unipush推送后,會遇到ios保持應用在前台或后台時無法收到通知欄消息問題,只能在應用中監聽推送然后創建本地通知,此篇文章根據這個問題進行處理推送監聽分別執行不同的業務。


完整處理示例

var platform = uni.getSystemInfoSync().platform;
//#ifdef APP-PLUS 
/* 5+ push 消息推送 ps:使用:H5+的方式監聽,實現推送*/
plus.push.addEventListener("click", function(msgc) {
	console.log(msgc);
	// && msgc.type == 'click'
	if (platform == 'ios') {
		//離線是payload為object , 在線時本地創建的為string(本地創建通知只能傳string,否則無法傳遞payload)
		if (typeof msgc.payload == 'string') {
			console.log('string')
			var paymsg = JSON.parse(msgc.payload);
		} else {
			console.log('obj')
			var paymsg = msgc.payload;
		}
		console.log(paymsg)
		//執行跳轉判斷
	}
	//這里可以寫跳轉業務代碼
}, false);
// 監聽在線消息事件 
plus.push.addEventListener("receive", function(msg) {
	//這里可以寫跳轉業務代碼
	console.log(msg)
	if (msg.type == "receive") // 這里判斷觸發的來源,否則一直推送。 
	{
		if (platform == 'ios') {
			// console.log(msg.payload)
			plus.push.createMessage(
				msg.payload.content,
				//本地創建通知payload只能傳string,否則無法成功傳遞(為null)
				JSON.stringify(msg.payload), {
					cover: false,
					title: msg.title,
				});
		}
	}
	if (platform == 'android') {
		//執行跳轉判斷
	}
}, false);

//#endif 

提示

上面的監聽處理代碼需放到App.vue文件onLaunch方法里面!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM