在iOS上未收到通知react-native-push-notification

时间:2018-07-20 16:54:53

标签: android ios react-native push-notification react-native-push-notification

我按照文档以及youtube上的一些教程,在iOS和android上集成了react-native-push-notification,但我有一个问题,我没有在iOS设备上收到任何通知,甚至本地通知,但在Android上运行良好。我不知道是否需要向您显示代码,因为与文档中的代码相同。

顺便说一句,我正在使用Firebase进行云消息传递,并使用p8密钥对其进行了配置。

3 个答案:

答案 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

  1. 在Firebase控制台中, 对于Android:下载google-services.json文件并将其放在android / app目录中。 对于iOS:下载GoogleService-Info.plist文件并将其放在/ ios / your-project-name目录(位于Info.plist旁边)

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令牌链接。