无法在 ios 中接收来自 react-native-firebase 的通知消息
Posted
技术标签:
【中文标题】无法在 ios 中接收来自 react-native-firebase 的通知消息【英文标题】:Can't receive notification message from react-native-firebase in ios 【发布时间】:2019-03-25 09:03:37 【问题描述】:所以我在通知消息方面遇到了问题。我在 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');
【问题讨论】:
您好像错过了请求通知权限。 不,我只是没有包含那段代码。我会添加它。 @user300779 您是否收到来自控制台的通知? 不,我只能接收带有 onMessage 的纯数据消息,但不能接收通知消息。 mobikul.com/send-push-notification-via-firebase-ios-postman @user300779 试试这个链接可能对你有帮助 【参考方案1】:我的问题出在info.plist
中的FirebaseAppDelegateProxyEnabled
标志中。它被设置为NO
这个标志允许从 APNs 向 FCM 发送消息。这就是为什么我能够通过 APNs 令牌而不是 FCM 令牌发送接收推送通知。将此标志设置为 YES
解决了我的问题。
【讨论】:
【参考方案2】:我认为您可能错过了配置 IOS 推送通知的详细步骤,您可以查看此博客,其中解释了我们如何在 IOS 和 android 中配置 FCM
https://medium.com/@anum.amin/react-native-integrating-push-notifications-using-fcm-349fff071591
【讨论】:
我正在关注您的博客并有一个问题:我必须在哪里添加 UserNotifications.framework 和 libRNFirebase.a?进入 RNFirebase.xcodeproj? 不,你需要在你的app文件夹(父文件夹)下的libary文件夹中添加那个,你可以看到当你在Xcode中打开ios文件时,你可以按照步骤 - Go构建阶段。单击“Link Binary With Libraries”下的“+”以添加新库。 我仔细检查了一切是否正确。您的代码仅适用于纯数据消息,仍然无法接收通知或通知 + 数据消息。问题是 - 我需要为 ios 实现一些后台通知和仅数据消息仅在前台工作,但在后台什么也不做。以上是关于无法在 ios 中接收来自 react-native-firebase 的通知消息的主要内容,如果未能解决你的问题,请参考以下文章
无法定期在 IOS 中进行后台 API 调用以推送应用程序中从 BLE 设备接收的数据
Firebase Crashlytics iOS:即使脚本似乎正在运行,也无法接收事件