【发布时间】:2019-10-30 11:02:39
【问题描述】:
我正在使用我的 react 本机应用向使用 Firebase 云消息传递的 android 用户设置推送通知。到目前为止,我大部分关注了这个tutorial。我设法使推送通知显示在锁定屏幕上,并在应用程序处于前台时处理它们。但是,当应用程序处于后台时,我无法将通知显示为弹出窗口。它出现在通知托盘上,但不会像 gmail 或 whatsapp 的通知那样显示弹出窗口。
我相信我的问题是我没有在消息中发送正确的参数。我正在使用firebase控制台,所以它不是很灵活。如何(以编程方式)配置通知以在收到时显示为弹出窗口?
编辑:
设置通知通道适用于较新的 Android 设备 - 在 Android 8.1(API 级别 27)上测试。
在较旧的设备上 - 在 Android 6.0(API 级别 23)上进行测试 - 仍然不会出现抬头通知。我正在使用 aws sns 控制台发送以下消息:
{
priority: 'high',
content_available: true,
notification: {
title: 'hello',
body: 'Just test',
android_channel_id: 'test-channel',
sound: 'default'
},
data: { title: 'title', body: 'body', sound: 'default' }
}
我还使用 Firebase 控制台设置 Priority High 和 Sound Enabled 发送消息,有无 Android Channel Id。这些都没有奏效。通知以静默方式到达托盘栏。这个discussion 显示了同样的问题,但是一个人指出的solution 对我不起作用。我没有过多地编辑 react-native 库代码。我尝试了 Problems with old Android version (Foreground) 部分,它使抬头出现在前台,而不是在后台,这是这里的预期行为。
此外,对于很多使用这个 react native 包的人来说,这似乎是一个未解决的问题(github issue,github issue)。
所以,我想我应该重新提出我的问题。对于 Android 7.1 或更低版本(在 6.0 上测试):
设置 priority='high' 和 notification.sound='default' 是否足以显示抬头通知? (根据我的研究应该是)
我是否需要对我的应用程序代码进行任何进一步的配置,以从通知以静默方式到达托盘栏变为提示出现?
【问题讨论】:
-
您真的在使用 GCM 吗?它已被弃用。您应该改用 FCM。此外,FCM 文档解释了您所描述的内容。你看过那个文档了吗?
-
我确实在使用 FCM。我已经打乱了这些概念。谢谢你的评论。我会在我的帖子中更正它。
-
您是否查看了 FCM 文档以确定它是否告诉您需要做什么?
-
我发现这个page 指定了 FCM 的消息属性。不过,我没有看到任何与显示相关的属性是否在背景上弹出。我还通过 firebase 和 firebase-react-native 文档检查了设置说明是否与教程中的相符。
-
请检查我的答案
标签: android firebase react-native push-notification react-native-firebase