uniapp 實現信息推送(App)


廢話不多說直接上代碼

以下代碼需寫在onlaunch生命周期內

onlaunch(){// onlaunch應用級生命周期 :當uni-app 初始化完成時觸發(全局只觸發一次)

//#ifdef APP-PLUS
const cInfo = plus.push.getClientInfo() // 獲取當前設備的客戶端id,傳給后台,實現指定用戶
info && uni.setStorageSync('clientInfo', info) //儲存cInfo

plus.push.addEventListener("click", function(msg) { //監聽消息點擊事件
        let payload; 
	// iOS 環境下
	if(uni.getSystemInfoSync().platform == 'ios') {
		 
		if (msg.type == "click") { //APP離線點擊包含click屬性,這時payload是JSON對象  
			payload = msg.payload;
		} else { //APP在線,收到消息不會包含type屬性,這時的payload是JSON字符串,需要轉為JSON對象  
			payload = JSON.parse(msg.payload);
		}  
		if (payload != null || payload != undefined) {  //此處是預防兩次響應推送后的執行事件,此處很玄乎
			// let messageType = payload.messageType; 
			// onLaunch 生命周期里,頁面跳轉有問題,跳不過去
			// 應該是頁面還沒加載,加上定時后,就可以了;
			setTimeout(() => { //做相應的跳轉 
				uni.navigateTo({
					url: payload.payload
				})
			}, 1000)
		}
	} else { // Android
		 payload = msg.payload;
		if (payload != null || payload != undefined) { //此處是預防兩次響應推送后的執行事件,此處很玄乎
			// onLaunch 生命周期里,頁面跳轉有問題,跳不過去
			// 應該是頁面還沒加載,加上定時后,就可以了; 
			setTimeout(() => { //做相應的跳轉
				uni.navigateTo({
					url: payload
				})
			}, 1000)
		}
	}
}, false);
//收到透傳消息  
//只有APP在線時,才會觸發receive事件,透傳消息不會觸發系統消息,需要創建本地消息  
plus.push.addEventListener("receive", function(msg) {
	//業務代碼
	// IOS
	if(uni.getSystemInfoSync().platform == 'ios') {
		//【APP離線】收到消息,但沒有提醒(發生在一次收到多個離線消息時,只有一個有提醒,但其他的沒有提醒)  
		//【APP在線】收到消息,不會觸發系統消息,需要創建本地消息,但不能重復創建。必須加msg.type驗證去除死循環                
		if (msg.type == "receive") {  
			//創建本地消息,發送的本地消息也會被receive方法接收到,但沒有type屬性,且aps是null  
			plus.push.createMessage(msg.content, JSON.stringify(msg), {title: messageTitle});  
		}  
	} else { // Android
		var payload = JSON.parse(msg.content); 
		var messageTitle = payload.title;
		var messageContent = payload.content;
		plus.push.createMessage(messageContent, payload, {title: messageTitle})
	}
	
}, false);
//#endif


}


來源:https://www.icode9.com/content-4-999837.html


免責聲明!

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



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