FCM主题 - iPhone 4(iOS 7)未收到通知

时间:2016-09-05 11:39:46

标签: ios objective-c firebase firebase-cloud-messaging firebase-notifications

我正在使用Firebase注册主题并在iOS设备上发送推送通知。一切都工作正常,除了iPhone 4(iOS 7),我没有收到任何通知。

我能够向包括iPhone 4(iOS 7)在内的所有人发送单个设备通知,问题仅在于主题推送通知。我的代码如下。

-(void)application:(UIApplication )application didRegisterUserNotificationSettings:(UIUserNotificationSettings )notificationSettings
{
    [[FIRMessaging messaging] subscribeToTopic:@"/topics/mytopic"];
    [application registerForRemoteNotifications];
}


       -(BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions 
        {
             if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
                {
                    // iOS 8 Notifications

                    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tokenRefreshCallback:) name:kFIRInstanceIDTokenRefreshNotification object:nil];
                    [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
                    [application registerForRemoteNotifications];
                }
                else
                {
                    // iOS < 8 Notifications

                    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tokenRefreshCallback:) name:kFIRInstanceIDTokenRefreshNotification object:nil];
                    [[FIRMessaging messaging] subscribeToTopic:@"/topics/mytopic"];
                    [application registerForRemoteNotificationTypes:
                    (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
                }
        }

1 个答案:

答案 0 :(得分:0)

plz将此用作

      // Register for remote notifications
      if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_7_1) {
        // iOS 7.1 or earlier
        UIRemoteNotificationType allNotificationTypes =
        (UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge);
        [application registerForRemoteNotificationTypes:allNotificationTypes];
      } else {
        // iOS 8 or later
        // [START register_for_notifications]
        UIUserNotificationType allNotificationTypes =
        (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
        UIUserNotificationSettings *settings =
        [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
        [[UIApplication sharedApplication] registerForRemoteNotifications];
        // [END register_for_notifications]
      }

 // [START configure_firebase]
  [FIRApp configure];
  // [END configure_firebase]

  // Add observer for InstanceID token refresh callback.
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tokenRefreshNotification:)
                                               name:kFIRInstanceIDTokenRefreshNotification object:nil];