Implementazione iOS

I seguenti esempi ti aiuteranno a implementare l'ID istanza in un client iOS. Tieni presente che per questi esempi viene utilizzato l'ambito GCM, che per la gestire i token per un client iOS Firebase Cloud Messaging.

Configura le dipendenze di CocoaPods

L'ID istanza usa CocoaPods per installare e e gestire le dipendenze. Apri una finestra del terminale e vai alla posizione del progetto Xcode per la tua applicazione. Se non hai già creato un podfile per la tua applicazione, creane uno adesso:

pod init

Apri il podfile creato per l'applicazione e aggiungi quanto segue:

pod 'FirebaseInstanceId'

Salva il file ed esegui:

pod install

Viene creato un file .xcworkspace per l'applicazione. Usa questo file per tutti lo sviluppo futuro della tua applicazione.

Genera un token

La generazione dei token richiede un ID progetto generato da Google Developers Console.

NSString *authorizedEntity = PROJECT_ID;
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
NSDictionary *options = @{
  @"apns_token" : <APNS Token data>,
  // 1 if APNS sandbox token else 0
  @"apns_sandbox" : @(1),
};
[[FIRInstanceID instanceID] tokenWithAuthorizedEntity:authorizedEntity
                                                scope:scope
                                              options:options
                                              handler:
                  ^(NSString * _Nullable token, NSError * _Nullable error) {
                      // ...
}];

Gestisci token e ID istanza

L'ID istanza consente di eliminare e aggiornare i token.

Elimina token e ID istanza

NSString *authorizedEntity = PROJECT_ID; // Project ID
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
FIRInstanceIDDeleteTokenHandler handler = ^void(NSError *error) {
  if (error) {
    // Failed to delete the token. Check error and do an exponential
    // backoff to retry again.
  } else {
    // Successfully deleted the token.
  }
};
[[FIRInstanceID instanceID]
    deleteTokenWithAuthorizedEntity:authorizedEntity
                              scope:scope
                            handler:handler];

Puoi anche eliminare l'ID istanza; in questo caso la prossima volta che chiami getInstance() riceverai un nuovo ID istanza:

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
      if error != nil {
        NSLog(@"Error deleting instance ID: %@", error);
      }
    }];

Aggiorna token

Il servizio ID istanza può creare o rigenerare token. In questo caso, verrà inviata una notifica. Puoi ascoltare questa notifica aggiungendo un'opzione osservatore per le notifiche denominate kFIRInstanceIDTokenRefreshNotification.

[[NSNotificationCenter defaultCenter] addObserver:self
         selector:@selector(tokenRefreshNotification:) 
         name:kFIRInstanceIDTokenRefreshNotification object:nil];

Questo osservatore deve essere creato prima del token, ad esempio prima di chiamare il numero [FIRApp configure]. Il token più recente può essere recuperato chiamata [[FIRInstanceID instanceID] token].

Tieni presente che per osservare la generazione di token per Cloud Messaging, c'è una delegate specifico disponibile.