RN notifee 和 firebase 不响起并在 iOS 中显示徽章编号
RN notifee and firebase doesn't sound and show badge number in iOS
我正在使用 react native 需要在 iOS 中显示徽章编号和声音,当应用程序处于后台时但它不起作用,我正在使用 notifee 和 firebase,当应用程序处于前台时工作正常问题是什么时候是背景。
messaging().onMessage(async remoteMessage => {
const channelId = await notifee.createChannel({
id: 'default',
name: 'Default Channel',
});
await notifee.displayNotification({
title: remoteMessage.data?.title || '',
body: remoteMessage.data?.message || '',
data: {
title: remoteMessage.data?.title || '',
message: remoteMessage.data?.message || '',
type: remoteMessage.data?.type || '',
},
android: {
channelId,
importance: AndroidImportance.HIGH,
color: LightTheme.colors.primary,
smallIcon: 'notification_icon',
largeIcon: 'notification_icon',
pressAction: {
id: 'stop',
},
},
ios: {
badgeCount: 1,
sound: 'default',
foregroundPresentationOptions: {
alert: true,
badge: true,
sound: true,
},
},
});
});
messaging().setBackgroundMessageHandler(async () => {
await notifee.incrementBadgeCount();
});
由于推送通知是由 iOS 而不是您的应用程序处理的,您无法在收到推送通知时更改应用程序徽章。
但是您可以在推送通知的有效负载中发送徽章编号,这将应用于应用程序图标,但为此您必须在服务器端进行计算。
You should read Local and Push Notification Programming Guide and especially the The Notification Payload。
有效负载可能如下所示:
// Payload for remote Notification to APN
{
"aps": {
"content-available": 1,
"alert": "Hallo, this is a Test.",
"badge": 2, // This is your Int which will appear as badge number,
"sound": default
}
}
声音:默认
将播放自定义声音的默认声音以进行通知
您应该将声音文件放在 android/app/res/raw 中,对于 iOS,您应该将声音文件放在 appname.xcodeproj 文件中的资源中
现在应用程序徽章图标将在应用程序图标上显示 2 个徽章计数。并播放您的自定义声音
我正在使用 react native 需要在 iOS 中显示徽章编号和声音,当应用程序处于后台时但它不起作用,我正在使用 notifee 和 firebase,当应用程序处于前台时工作正常问题是什么时候是背景。
messaging().onMessage(async remoteMessage => {
const channelId = await notifee.createChannel({
id: 'default',
name: 'Default Channel',
});
await notifee.displayNotification({
title: remoteMessage.data?.title || '',
body: remoteMessage.data?.message || '',
data: {
title: remoteMessage.data?.title || '',
message: remoteMessage.data?.message || '',
type: remoteMessage.data?.type || '',
},
android: {
channelId,
importance: AndroidImportance.HIGH,
color: LightTheme.colors.primary,
smallIcon: 'notification_icon',
largeIcon: 'notification_icon',
pressAction: {
id: 'stop',
},
},
ios: {
badgeCount: 1,
sound: 'default',
foregroundPresentationOptions: {
alert: true,
badge: true,
sound: true,
},
},
});
});
messaging().setBackgroundMessageHandler(async () => {
await notifee.incrementBadgeCount();
});
由于推送通知是由 iOS 而不是您的应用程序处理的,您无法在收到推送通知时更改应用程序徽章。 但是您可以在推送通知的有效负载中发送徽章编号,这将应用于应用程序图标,但为此您必须在服务器端进行计算。 You should read Local and Push Notification Programming Guide and especially the The Notification Payload。 有效负载可能如下所示:
// Payload for remote Notification to APN
{
"aps": {
"content-available": 1,
"alert": "Hallo, this is a Test.",
"badge": 2, // This is your Int which will appear as badge number,
"sound": default
}
}
声音:默认 将播放自定义声音的默认声音以进行通知 您应该将声音文件放在 android/app/res/raw 中,对于 iOS,您应该将声音文件放在 appname.xcodeproj 文件中的资源中 现在应用程序徽章图标将在应用程序图标上显示 2 个徽章计数。并播放您的自定义声音