APP.vue中代码如下:
onLaunch: function() {
console.log('App Launch');
// #ifdef APP-PLUS
console.log('11111111111111');
// 获取当前应用的cid
plus.push.getClientInfoAsync((info) => {
console.log('------------getClientInfoAsync---------');
console.log(info);
});
// 获取客户端唯一的推送标识
getPushClientIdWithRetry();
// 设置接收透传消息的监听器
uni.onPushMessage(function(result) {
console.log('收到推送消息:', result);
const { type, data } = result;
const { payload } = data;
const { definedTitle: title, definedContent: content } = payload;
if (type === 'receive') {
// 应用从推送服务器接收到推送消息事件
uni.createPushMessage({
title,
content,
payload,
success(a, b, c) {
console.log('createPushMessage success', a, b, c);
},
fail(a, b, c) {
console.log('createPushMessage fail', a, b, c);
}
})
}
});
// #endif
}
1***@qq.com (作者)
fcm拉起进程,js线程并没有启动,此时怎么能继续监听到透传消息并创建本地通知?
2025-02-17 14:22
DCloud_Android_THB
回复 1***@qq.com: 如上所述,会缓存后续的透传消息,直到你的注册监听代码运行。
2025-02-19 12:28
1***@qq.com (作者)
回复 DCloud_Android_THB: fcm拉起进程,设备在线时,不是应该uniapp底层拉起js线程启动吗?不然我怎么能保持uni.onPushMessage监听代码一直运行呢?js线程不启动的话,手机顶部就不能及时收到消息通知呀,得打开才能收到。
2025-02-24 17:15
DCloud_Android_THB
回复 1***@qq.com: 对 就是要打开app,此时onPushMessage里面处理。
2025-02-24 18:47
1***@qq.com (作者)
回复 DCloud_Android_THB: 那这样的话,我不打开app的话,后面来的新消息通知就不能及时收到了,感觉这样不合理呢,应该fcm拉起进程,设备在线时,uniapp应该拉起app的js线程启动,这样通过监听onPushMessage来创建消息createPushMessage,才能及时收到新的消息通知。
2025-02-25 10:40
DCloud_Android_THB
回复 1***@qq.com: 我明白你的意思了,这个我们需要讨论一下,先讲下这个问题,fcm拉起进程,进程虽然启动了,但是js线程在后台是不运行的,导致新消息只在原生层...
2025-02-25 17:39
1***@qq.com (作者)
回复 DCloud_Android_THB: 是的,这个问题对于杀掉应用后,需要及时收到重要消息的APP来说很重要。麻烦你们能尽快解决一下这个问题呢,顺便看下国内各厂商的消息推送是不是也存在这个类似问题。如果你们解决了,麻烦通知一下,非常感谢。
2025-02-26 14:37
DCloud_Android_THB
回复 1***@qq.com: 国内的不存在此问题
2025-02-26 16:37
1***@qq.com (作者)
回复 DCloud_Android_THB: 你好,请问这个问题什么时候能解决,我这边海外项目着急要用,暂时有没有其他快捷的方式来解决?
2025-03-04 09:49