在 ios 中无法接收来自 react-native-firebase 的通知消息
Can't receive notification message from react-native-firebase in ios
所以我在通知消息方面遇到了问题。我在 android 上成功连接了通知消息,并且有 ios 的远程(仅数据)消息。但收不到通知或通知加数据信息。这是我捕获消息的代码:
const enabled = await firebase.messaging().hasPermission();
if (enabled) {
console.log('fcm enabled');
const channel = new firebase.notifications.Android.Channel(
'channelId',
'Channel Name',
firebase.notifications.Android.Importance.Max
).setDescription('A natural description of the channel');
firebase.notifications().android.createChannel(channel);
this.unsubscribeFromNotificationListener = firebase.notifications().onNotification((notification) => {
console.log(notification);
if (Platform.OS === 'android') {
const localNotification = new firebase.notifications.Notification({
sound: 'default',
show_in_foreground: true,
})
.setNotificationId(notification.notificationId)
.setTitle(notification.title)
.setSubtitle(notification.subtitle)
.setBody(notification.body)
.setData(notification.data)
.android.setChannelId('channelId')
.android.setColor('#000000')
.android.setSmallIcon(notification.android.smallIcon.icon)
.android.setPriority(firebase.notifications.Android.Priority.High);
firebase.notifications()
.displayNotification(localNotification)
.catch(err => console.error(err));
} else if (Platform.OS === 'ios') {
console.log(notification);
const localNotification = new firebase.notifications.Notification()
.setNotificationId(notification.notificationId)
.setTitle(notification.title)
.setSubtitle(notification.subtitle)
.setBody(notification.body)
.setData(notification.data)
.ios.setBadge(notification.ios.badge);
firebase.notifications()
.displayNotification(localNotification)
.catch(err => console.error(err));
}
});
} else {
console.log('fcm not enabled');
}
我认为您可能缺少配置 IOS 推送通知的详细步骤,您可以查看此博客,其中解释了我们如何在 IOS 和 android两者
https://medium.com/@anum.amin/react-native-integrating-push-notifications-using-fcm-349fff071591
我的问题出在 info.plist
中的 FirebaseAppDelegateProxyEnabled
标志中。它被设置为 NO
此标志允许从 APNs 向 FCM 发送消息。这就是为什么我能够通过 APNs 令牌而不是通过 FCM 令牌发送接收推送通知。将此标志设置为 YES
解决了我的问题。
所以我在通知消息方面遇到了问题。我在 android 上成功连接了通知消息,并且有 ios 的远程(仅数据)消息。但收不到通知或通知加数据信息。这是我捕获消息的代码:
const enabled = await firebase.messaging().hasPermission();
if (enabled) {
console.log('fcm enabled');
const channel = new firebase.notifications.Android.Channel(
'channelId',
'Channel Name',
firebase.notifications.Android.Importance.Max
).setDescription('A natural description of the channel');
firebase.notifications().android.createChannel(channel);
this.unsubscribeFromNotificationListener = firebase.notifications().onNotification((notification) => {
console.log(notification);
if (Platform.OS === 'android') {
const localNotification = new firebase.notifications.Notification({
sound: 'default',
show_in_foreground: true,
})
.setNotificationId(notification.notificationId)
.setTitle(notification.title)
.setSubtitle(notification.subtitle)
.setBody(notification.body)
.setData(notification.data)
.android.setChannelId('channelId')
.android.setColor('#000000')
.android.setSmallIcon(notification.android.smallIcon.icon)
.android.setPriority(firebase.notifications.Android.Priority.High);
firebase.notifications()
.displayNotification(localNotification)
.catch(err => console.error(err));
} else if (Platform.OS === 'ios') {
console.log(notification);
const localNotification = new firebase.notifications.Notification()
.setNotificationId(notification.notificationId)
.setTitle(notification.title)
.setSubtitle(notification.subtitle)
.setBody(notification.body)
.setData(notification.data)
.ios.setBadge(notification.ios.badge);
firebase.notifications()
.displayNotification(localNotification)
.catch(err => console.error(err));
}
});
} else {
console.log('fcm not enabled');
}
我认为您可能缺少配置 IOS 推送通知的详细步骤,您可以查看此博客,其中解释了我们如何在 IOS 和 android两者
https://medium.com/@anum.amin/react-native-integrating-push-notifications-using-fcm-349fff071591
我的问题出在 info.plist
中的 FirebaseAppDelegateProxyEnabled
标志中。它被设置为 NO
此标志允许从 APNs 向 FCM 发送消息。这就是为什么我能够通过 APNs 令牌而不是通过 FCM 令牌发送接收推送通知。将此标志设置为 YES
解决了我的问题。