uni-app unipush2.0 离线通知点击事件无法被监听到
uni-app unipush2.0 离线通知点击事件无法被监听到
示例代码:
uni.onPushMessage((res) => {
console.log('收到推送消息:', res) //监听推送消息
uni.createPushMessage(res.data)
if(res.type=='click'){
console.log('点击了推送',res) //离线推送点击后,这里不会被执行
}
})
plus.push.addEventListener("click", function(msg) {
console.log("点击了推送消息:",msg) //离线推送点击后,这里不会被执行
})
操作步骤:
- 点击离线通知
预期结果:
- 点击离线通知后,能够监听到点击事件
实际结果:
- 点击离线通知后,无法监听到点击事件
bug描述:
离线通知能够接收到,点击后会打开应用首页,但是点击事件无法被监听到,无论是plus.push.addEventListener("click",function(){},false)
,还是在uni.onPushMessage
中监听res.type=='click'
都无法监听到离线推送的点击事件。在线推送可以正常监听到点击事件
更多关于uni-app unipush2.0 离线通知点击事件无法被监听到的实战教程也可以访问 https://www.itying.com/category-93-b0.html
看一眼你服务器端推送的uniPush.sendMessage代码
更多关于uni-app unipush2.0 离线通知点击事件无法被监听到的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我解决了,是因为我在onLaunch中有几个await的异步请求放在了uni.onPushMessage的前面,导致onPushMessage执行的时候,App已经启动了几秒甚至十几秒了,onPushMessage已经监听不到click事件了,把onPushMessage放在await请求前面就可以了。
在使用 Uni-App 的 UniPush 2.0 时,如果你发现离线通知的点击事件无法被监听,可能是由于以下几个原因导致的。下面是一些常见的排查步骤和解决方案:
1. 确认推送配置
- 确保你已经在 UniPush 2.0 后台正确配置了推送证书(iOS)和推送服务(Android)。
- 确保你的应用在前台和后台都能正常接收推送通知。
2. 监听点击事件
在 Uni-App 中,你可以通过 plus.push.addEventListener
来监听推送通知的点击事件。确保你在应用的入口文件(如 App.vue
)中正确添加了事件监听器。
export default {
onLaunch: function() {
// 监听推送通知点击事件
plus.push.addEventListener('click', function(msg) {
console.log('通知被点击了:', msg);
// 在这里处理通知点击后的逻辑
}, false);
}
}
3. 检查离线通知
- iOS: 确保你的应用在后台或关闭时能够接收到推送通知。iOS 的离线通知通常由 APNs 直接处理,你需要确保推送的 payload 正确。
- Android: 确保你的应用在后台或关闭时能够接收到推送通知。Android 的离线通知通常由厂商通道处理,你需要确保厂商通道配置正确。
4. 检查推送内容
确保推送的内容中包含了必要的字段,特别是 payload
字段。payload
字段可以在通知点击时传递到应用。
{
"title": "测试通知",
"content": "这是一个测试通知",
"payload": {
"key1": "value1",
"key2": "value2"
}
}