【发布时间】:2017-01-05 22:12:44
【问题描述】:
解决方案:
问题似乎出在 Firebase 测试控制台发送的消息上,但我还不知道为什么。我开始使用 node-gcm 发送消息,一切从一开始就按预期工作。
两个消息都通过设备令牌发送到单个设备。 logcat 中的消息:
- 从 Firebase 测试控制台发送(不适用于 bg):
01-06 14:36:06.618 19422 19422 I chromium: [INFO:CONSOLE(95702)] "{"sound":"default","title":"├üFA fizet├ęs 2016.11.30-a","message":"K├Âvetkez┼Ĺ esed├ękes k├Âtelezetts├ęg: ├üFA fizet├ęs 2016.11.30-a","additionalData":{"id":"1","google.message_id":"0:1483709767111210%********","coldstart":false,"collapse_key":"********","foreground":true}}", source: file:///android_asset/www/build/main.js (95702)
- 由 node-gcm 脚本发送(甚至可以从 bg 工作):
01-06 14:37:41.037 19422 19422 I chromium: [INFO:CONSOLE(95702)] "{"title":"├üFA fizet├ęs 2016.11.30-a","message":"K├Âvetkez┼Ĺ esed├ękes k├Âtelezetts├ęg: ├üFA fizet├ęs 2016.11.30-a","additionalData":{"id":"1","google.message_id":"0:1483709856368443%*********","coldstart":false,"collapse_key":"do_not_collapse","foreground":false}}", source: file:///android_asset/www/build/main.js (95702)
我看到的区别是 collapse_key 属性,它包含应用程序的 apk 名称和声音。这可能是由collapse_key引起的吗?
更新的缩短版:
- 设备注册成功。
- 从 Firebase 测试控制台发送的测试通知。
- 它们到达设备:
- 当应用程序在前台时,通知事件会被触发。好的
- 当应用程序在后台时,消息会出现在操作系统的通知栏上。如果我点击它,我的应用程序就会被激活,仅此而已。通知事件尚未以这种方式调用。不行
原问题:
我正在使用 phonegap-push-plugin,当应用程序在后台并单击 Android 上的通知事件时,我无法触发通知事件。
如果应用程序处于活动状态,我可以看到在 logcat 上调用了该事件。但是,如果它在后台并且我单击事件通知,则该应用程序将被激活,并且根据 logcat 事件不会发生任何其他事情。我曾尝试在 Firebase 测试控制台中添加 content-available: 1 作为附加参数,但这也无济于事。
这是来自 logcat 的一行,当应用程序处于活动状态时会显示:
01-05 22:41:59.981 9076 9186 V PushPlugin: extrasToJSON:
{"sound":"default","title":"Msg title","message":"Msg
body","additionalData":
{"id":"1","google.message_id":"0:1483652521531127%d86d9************",
"coldstart":false,"collapse_key":"************","foreground":true}}
代码和其他地方一样,回调被触发后我有立即的 console.logs:
push.on('notification', (data) => {
console.log('onNotification'); // not shown when app is in bg
【问题讨论】:
-
@SantoshShinde 在包括 devgirls 之前,我已经学习了许多教程,我可以注册、发送和捕获消息。唯一的问题是,当应用在后台时,点击通知时不会触发回调。
标签: android cordova firebase ionic-framework firebase-notifications