2016-06-24 39 views
5

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 !!

+0

sidenote: per non dimenticare le mappe, aggiungere '#warning ma Tensa google maps' – Hussein

+0

che tipo di payload stai inviando con la semplice pressione? Puoi fornire un esempio di payload push (forse JSON?)? – Hussein

+0

Dalla console fcm –

risposta

0

Se si desidera visualizzare la notifica, è necessario impostare "priorità": "alto". In questo modo:

"to":"TOKEN ID", 
"notification" : { 
    "body" : "test" 
}, 
"priority": "high" 
}