推送通知不会在 Android 上弹出
Posted
技术标签:
【中文标题】推送通知不会在 Android 上弹出【英文标题】:Push notification doesn't pop up on Android 【发布时间】:2021-03-08 20:09:05 【问题描述】:我正在创建使用 FCM 发送推送通知的颤振应用程序。我通过向设备发送 JSON 来从网站发送带有 Cloud Functions 的通知。然而,这在 ios 上完美运行(弹出通知)在 android 上我得到声音并且通知只出现在状态栏中。关于如何让它弹出的任何建议?
这是我发送的 JSON:
"message":
"token" : result,
"notification" :
"body" : body,
"title" : title,
,
"data":
"body": body,
"title": title
,
"apns":
"headers":
'apns-priority': '10',
,
"payload":
"aps":
"sound": 'default',
,
,
"android":
"priority": 'high',
"notification":
"sound": 'default',
,
【问题讨论】:
能否分享您编写的云函数并指出您是如何发送推送通知的?请分享最少的可重复步骤,以更好地帮助您。另外请查看以下Firebase Official Documentation 以向多个设备发送消息。 【参考方案1】:您正确设置了“优先级”:“高”,但我认为这可能是 FCM 降低优先级的情况。这是来自FCM Documentation:
高优先级消息通常会导致用户与您的应用或其通知进行交互。如果 FCM 检测到他们没有检测到的模式,您的消息可能会被取消优先级。
如果您的应用程序在前台,您可以通过将 NotificationChannel 优先级和 NotificationBuilder 中的通知优先级设置为高优先级来实现所需的行为。如果应用在前台,则通知由扩展的 FirebaseMessagingService 创建,并且可以设置优先级。
但如果应用处于后台或关闭状态,则通知由系统的通知托盘创建。
这适用于同时发送 notification
和 data
对象。
可能的解决方案是仅发送data
对象(不发送notification
对象)。像这样,通知总是由 FirebaseMessagingService 创建。应用程序是在前台还是在后台或关闭。见此表this table
【讨论】:
以上是关于推送通知不会在 Android 上弹出的主要内容,如果未能解决你的问题,请参考以下文章