我有一个使用 Firebase 来处理推送通知的反应本机应用程序。我总是使用 FCM 旧版 api 来发送通知。
我最近切换到新的 FCM v1 API。更改身份验证模式和有效负载结构后,除了应用程序上的徽章计数之外,一切正常。我检查了https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages的文档,有一个适用于Android的
notification_count
字段,但没有适用于iOS的字段。使用旧版 api,我能够定义一个 badge
属性。
这是我当前的结构:
'message' => [
// Android
'android' => [
'priority' => 'HIGH',
'notification' => [
'notification_count' => $badge
]
],
// iOS
'apns' => [
'payload' => [
'aps' => [
'notification_count' => $badge
]
]
],
'token' => $deviceToken,
'notification' => [
'title' => $title,
'body' => $body
],
'data' => [
'title' => $title,
'message' => $body
],
'fcm_options' => [
'analytics_label' => $analyticsLabel
]
]
提前感谢您的帮助
最终的解决方案是在 '
notification_count
' => 'badge
' => 'apns
'下将
payload
替换为
aps
在Java方面,
适用于 iOS
ApnsConfig.builder().setAps(Aps.builder().setBadge(1).build()
对于 Android 特定配置,准备一个
androidConfig
对象
AndroidConfig androidConfig = AndroidConfig.builder() .setNotification(AndroidNotification.builder().setNotificationCount(1).build()).build();
然后在消息中设置
Message.builder()
.setApnsConfig(ApnsConfig.builder().setAps(Aps.builder().setBadge(1).build()).build())
setAndroidConfig(androidConfig)
.build()