如何使用 FCM v1 http api 设置徽章

问题描述 投票:0回答:2

我有一个使用 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
    ]
]

提前感谢您的帮助

firebase firebase-cloud-messaging
2个回答
2
投票

最终的解决方案是在 '

notification_count
' => '
badge
' => '
apns
'
 下将 
payload
 替换为 
aps


0
投票

在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()
© www.soinside.com 2019 - 2024. All rights reserved.