当前位置: 首页 > 知识库问答 >
问题:

仅在iOS上响应本机firebase推送通知问题

柴宝
2023-03-14

我已经在我的项目上实现了react原生firebase推送通知,它可以与android正常工作,但不会在iOS上显示。

  1. iOS项目包括GoogleService-info.plist文件。
  2. 在后台模式下,消息推送和远程通知的项目功能也“开启”。
  3. 我已将APNs身份验证密钥添加到Firebase控制台。
  4. 当应用程序在设备上运行时,它会向用户请求通知权限

预期结果:android和iOS设备上都会弹出通知

实际结果:只在android上弹出通知

应用程序运行正常,它不会崩溃或不抛出任何错误。

AppDelegate。m文件

#import "AppDelegate.h"
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import <Firebase.h> //Added This Line
#import "RNFirebaseNotifications.h" //Added This Line
#import "RNFirebaseMessaging.h" //Added This Line
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application      didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [FIRApp configure]; //Added This Line
    [RNFirebaseNotifications configure];  //Added This Line
    RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
    RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"pushnotificationTest" initialProperties:nil];
    rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    UIViewController *rootViewController = [UIViewController new];
 rootViewController.view = rootView;
    self.window.rootViewController = rootViewController;
    [self.window makeKeyAndVisible];
    [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self]; //Added This Line
  return YES;
}

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}
@end

共有1个答案

沈实
2023-03-14

我建议您重新检查APNs证书。90%的问题引用了错误的APNs门/证书(如果您在设备上安装了带有调试证书的应用程序,则需要在沙箱门中发送通知)。如果你安装了带有产品认证的应用程序,比如adhock或AppStore,你需要在产品APNs gate中发送通知。

您可以在没有Firebase的情况下使用发送消息推送来检查它。它可以使用这个工具:https://github.com/noodlewerk/NWPusher

另外,我建议,获取有关环境的更多信息:react-native-fire base版本,iOS版本,iOSSDK版本等。

如果你对iOS 13有问题,你可以检查这个问题https://github.com/invertase/react-native-firebase/issues/2565(也许你也有同样的问题)。

我希望它对你有帮助。

 类似资料:
  • 我无法发送通知 {“多播id”:2200169071930988341,“成功”:0,“失败”:1,“规范id”:0,“结果”:[{“错误”:“无效注册”}]

  • 所以我尝试接收推送通知从Firebase和react-native-push-notifications.react本机推送通知在android它的工作完美。 我的问题只出现在IO上。我已经按照push-cendation-ios安装了,但没有结果。 包裹json: appDelegate。m: appDelegate。h: info.plist: 在应用程序标识符上,我已被选中并创建推送通知 生

  • 我试图实现推送通知与反应本机与此插件反应本机推送通知。我成功的是在应用程序运行时收到通知(在前台),但我想做的是在应用程序关闭时收到通知(后台),不运行,当我收到通知进入应用程序时。 我的密码 我正在使用firebase函数发送通知 AndroidManifest。xml 正如我之前所说的,只有当应用程序运行时,当我使用firebase http功能发送时,我才能成功获得通知。我现在只在Andro

  • 本文向大家介绍iOS推送之本地通知UILocalNotification,包括了iOS推送之本地通知UILocalNotification的使用技巧和注意事项,需要的朋友参考一下 摘要: Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notification种类,本

  • 使用更新的Firebase cloud messaging和swizzling方法,当我的应用程序前景化时,我能够成功地在我的应用程序委托中的方法中接收有效负载。但是,我没有收到任何类型的有效负载,并且当我的应用程序处于后台时,不会被调用,尽管api响应消息已成功发送(见下文) 以下是我发送给FCM api的请求,以触发推送通知 有FCM的回复 这是我的appDelegate代码 我在我的应用程序

  • 我无法通过parse.com正确设置推送通知。我相信我的推送是因为它们通过解析显示在我的推送日志中。但是,无论我的推送发送到哪里(app或仪表盘),“发送的推送”总是显示0。我知道这可能是一个复杂的任务,所以任何帮助将是非常感谢!下面是我的代码: AppDelegate.m InboxTableViewController.m ViewDidLoad