使用FCM在ios中不显示远程通知

Zak*_*ish 5 iphone objective-c push-notification ios

在部署FCM云消息传递之后,这是GCM云消息传递的升级版本,如https://developers.google.com/cloud-messaging/ios/client所述,因此我们使用pod将https集成到我们的应用中,如上所述https:// firebase.google.com/docs/cloud-messaging/notifications我跟进本教程中的每一步都是在状态背景状态活动状态下收到远程通知的情况,但我遇到的主要问题是通知确实出现在通知栏中这里是我正在使用的代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {



    float ver = [[[UIDevice currentDevice] systemVersion] floatValue];

    if(ver >= 8 && ver<9)
    {
        if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)])
        {
            [[UIApplication sharedApplication] registerForRemoteNotifications];
            UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert) categories:nil];
            [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

        }
    }else if (ver >=9){

        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];

        [[UIApplication sharedApplication] registerForRemoteNotifications];


    }
    else{
        //iOS6 and iOS7 specific code
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert];
    }
    // ma tensa google maps
    [FIRApp configure];
    [self connectToFcm];

}


- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {

    NSLog(@"My token is: %@", deviceToken);
}

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error {
    NSLog(@"Failed to get token, error: %@", error);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {


        UILocalNotification *localNotification = [[UILocalNotification alloc] init];
        localNotification.userInfo = userInfo;
        localNotification.applicationIconBadgeNumber = 0;
        localNotification.soundName = UILocalNotificationDefaultSoundName;
        localNotification.fireDate = [NSDate date];
        [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

    NSLog(@"Message ID: %@", userInfo[@"gcm.message_id"]);


//    
//    if (application.applicationState == active) {
//        <#statements#>
//    }
    // Pring full message.
    NSLog(@"%@", userInfo);
}

- (void)applicationDidEnterBackground:(UIApplication *)application {

   // [[FIRMessaging messaging] disconnect];


}


- (void)connectToFcm {
    [[FIRMessaging messaging] connectWithCompletion:^(NSError * _Nullable error) {
        if (error != nil) {
            NSLog(@"Unable to connect to FCM. %@", error);
        } else {
            NSLog(@"Connected to FCM.");

                [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"registeredToFCM"];
                [[NSUserDefaults standardUserDefaults] synchronize];




  // i used the method since not all the time app register for fcm so when 
 //the complete launching and did not register //
//for fcm the app request to register fro fcm again//

        }
    }];
}
Run Code Online (Sandbox Code Playgroud)

这里有一些链接我搜索以解决我的问题,然后移动到这里通知没有进入iOS 9.2,FCM后台通知无法在iOS中工作,推送通知在iOS 9中不起作用但我无法解决我的问题

收到通知时,忘了告诉你手机正在振铃并振动.

希望任何人帮助Happy Coding !!

小智 0

如果您希望显示通知,则必须设置“优先级”:“高”。就像这样:

"to":"TOKEN ID",
"notification" : {
  "body" : "test"
},
"priority": "high"
}
Run Code Online (Sandbox Code Playgroud)