dopo la distribuzione di FCM messaggistica cloud che è la versione aggiornamento di messaggistica cloud GCM come detto https://developers.google.com/cloud-messaging/ios/client così ci siamo spostati da integrare FCM nella nostra applicazione utilizzando pod come detto https://firebase.google.com/docs/cloud-messaging/notifications seguo ogni passo nella tutorial qui è ciò che accade la notifica remota era stato ricevuto bene sia in stato di Sfondo Stato e stato attivo ma il problema principale che ho affrontato è la notifica viene visualizzato nella barra di notifica ecco il mio codice che sto usandonotifica remota non vengono visualizzate in iOS utilizzando FCM
- (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//
}
}];
}
qui qualche collegamento che cerco Ed per risolvere il mio problema prima di trasferirsi qui Notifications are not getting in iOS 9.2, FCM background notifications not working in iOS, e Push notifications are not working in iOS 9 ma non ho potuto risolvere il mio problema
dimenticato di dirvi che il telefono squilla e vibra quando era stato ricevuto la notifica.
speranza qualsiasi aiuto Felice Coding !!
sidenote: per non dimenticare le mappe, aggiungere '#warning ma Tensa google maps' – Hussein
che tipo di payload stai inviando con la semplice pressione? Puoi fornire un esempio di payload push (forse JSON?)? – Hussein
Dalla console fcm –