标签:uniapp 通知 APP var JSON 消息 msg 推送 payload
//#ifdef APP-PLUS
var info = plus.push.getClientInfo()
// 获取当前设备的客户端id,传给后台,实现指定用户
info && uni.setStorageSync('clientInfo', info)
// 使用5+App的方式进行监听消息推送
//消息点击事件
//【APP在线】,收到透传消息通过,不会提醒至通知栏目,需要发送本地消息,再进行点击触发的点击事件。
//【APP离线】,收到离线透传消息,必须通过Java后台的Intent字符串携带payload,且符合格式才能触发click事件,格式不符合不会触发。
plus.push.addEventListener("click", function(msg) {
console.log('click', JSON.stringify(msg))
// IOS
if(uni.getSystemInfoSync().platform == 'ios') {
var payload;
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) {
// var messageType = payload.messageType;
// onLaunch 生命周期里,页面跳转有问题,跳不过去
// 应该是页面还没加载,加上定时后,就可以了;
setTimeout(() => {
uni.navigateTo({
url: payload.payload
})
}, 1000)
}
} else { // Android
var 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
标签:uniapp,通知,APP,var,JSON,消息,msg,推送,payload 来源: https://blog.csdn.net/CH9704/article/details/117423716
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。