我按照文档以及youtube上的一些教程,在iOS和android上集成了react-native-push-notification,但我有一个问题,我没有在iOS设备上收到任何通知,甚至本地通知,但在Android上运行良好。我不知道是否需要向您显示代码,因为与文档中的代码相同。
顺便说一句,我正在使用Firebase进行云消息传递,并使用p8密钥对其进行了配置。
答案 0 :(得分:1)
即使打开了所有相关设置,我也遇到了类似的问题。令人沮丧-我使用Google Play商店的“ hi security”来管理通知。将“通知”设置为“开启”后,我发现所有徽章都在显示-主屏幕和应用上都未接来电和未读消息。
答案 1 :(得分:0)
我也尝试了react-native-firebase,但是没有用,没有收到推送通知。后来,我使用react-native-fcm实现了推送通知,并且可以正常工作。您可以检查链接https://github.com/evollu/react-native-fcm
答案 2 :(得分:0)
您可能没有收到通知,可能是因为Firebase未正确集成到您的应用程序中。正确整合的步骤如下:
react-native-firebase库对我不起作用。使用接收推送通知后成功的react-native-fcm集成firebase以响应本机应用程序。
1。安装react-native-fcm: npm install react-native-fcm --save
3。使用配置项目: cd ios && pod初始化
4。编辑新创建的Podfile: 吊舱安装
5。编辑AppDelegate.h:
@import UserNotifications;
@interface AppDelegate:UIResponder<UIApplicationDelegate,UNUserNotificationCenterDelegate>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
6。编辑AppDelegate.m:
#import "RNFIRMessaging.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[FIRApp configure];
[[UNUserNotificationCenter currentNotificationCenter] setDelegate:self];
return YES;
}
-(void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^) .
(UNNotificationPresentationOptions))completionHandler
{
[RNFIRMessaging willPresentNotification:notification
withCompletionHandler:completionHandler];
}
#if defined(__IPHONE_11_0)
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)(void))completionHandler
{
[RNFIRMessaging didReceiveNotificationResponse:response
withCompletionHandler:completionHandler];
}
#else
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void(^)())completionHandler
{
[RNFIRMessaging didReceiveNotificationResponse:response
withCompletionHandler:completionHandler];
}
#endif
//You can skip this method if you don't want to use local notification
-(void)application:(UIApplication *)application
didReceiveLocalNotification:(UILocalNotification *)notification {
[RNFIRMessaging didReceiveLocalNotification:notification];
}
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo
fetchCompletionHandler:(nonnull void (^) .
(UIBackgroundFetchResult))completionHandler{
[RNFIRMessaging didReceiveRemoteNotification:userInfo
fetchCompletionHandler:completionHandler];
}
7。将头文件的路径添加到XCode中:
打开XCode。 按CMD + 1或单击XCode项目。 转到构建设置,选择全部和合并。 searchg选项卡中的搜索标题搜索路径。 确保有一行$(SRCROOT)/../ node_modules / react-native-fcm / ios。如果否,则添加它。
8。添加GoogleService-Info.plist:
确保文件不只是移到文件夹中。您需要右键单击XCode中的项目文件夹,然后将文件添加到。选择文件时,如果需要,在“选项”页面中选择“复制”。
9。共享库设置:
如果使用Pod安装方法,请确保在“库”文件夹下看到Pods.xcodeproj。 确保在“库”文件夹下看到RNFIRMessaging.xcodeproj。 如果您看不到任何这些文件,请通过右键单击“库”文件夹,然后单击“添加文件”将其添加回来添加它们。 Pods.xcodeproj应该位于ios / Pods /下,而RNFIRMessaging.xcodeproj应该位于node_modules / react-native-fcm / ios下。 确保在“构建阶段”选项卡下的“将二进制文件与库链接”下看到libRNFIRMessaging.a。如果不是,将“库”文件夹下RNFIRMessaging.xcodeproj下的文件拖到那里。
10。添加功能 选择您的项目功能并启用: 推送通知 后台模式>远程通知。
FirebaseAppDelegateProxyEnabled 该说明假定您具有FirebaseAppDelegateProxyEnabled = YES(默认值),以便Firebase可以挂接到推送通知注册事件。如果关闭此标志,则您将自己管理APNS令牌并与Firebase令牌链接。