Implémentation iOS

Les exemples suivants vous aideront à implémenter un ID d'instance dans un client iOS. Notez que ces exemples utilisent le champ d'application GCM que vous utiliseriez pour gérer les jetons d'un client iOS pour Firebase Cloud Messaging.

Configurer vos dépendances CocoaPods

L'ID d'instance utilise CocoaPods pour installer et gérer les dépendances. Ouvrez une fenêtre de terminal et accédez à l'emplacement du projet Xcode de votre application. Si vous n'avez pas encore créé de fichier Podfile pour votre application, créez-en un maintenant:

pod init

Ouvrez le Podfile créé pour votre application et ajoutez les éléments suivants:

pod 'FirebaseInstanceId'

Enregistrez le fichier et exécutez :

pod install

Cette opération crée un fichier .xcworkspace pour votre application. Utilisez ce fichier pour tous les futurs développements de votre application.

Générer un jeton

Pour générer des jetons, vous devez disposer d'un ID de projet généré par la Google Play 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) {
                      // ...
}];

Gérer les jetons et les ID d'instance

L'ID d'instance vous permet de supprimer et d'actualiser des jetons.

Supprimer les jetons et les ID d'instance

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];

Vous pouvez également supprimer l'ID d'instance lui-même. Dans ce cas, la prochaine fois que vous appellerez getInstance(), vous obtiendrez un nouvel ID d'instance:

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

Jetons d'actualisation

Le service d'ID d'instance peut créer ou regénérer des jetons. Dans ce cas, une notification est envoyée. Vous pouvez écouter cette notification en ajoutant un observateur pour les notifications nommé kFIRInstanceIDTokenRefreshNotification.

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

Cet observateur doit être créé avant la création du jeton, par exemple avant d'appeler [FIRApp configure]. Le dernier jeton peut être récupéré en appelant [[FIRInstanceID instanceID] token].

Notez qu'un délégué spécifique est disponible pour observer la génération de jetons pour Cloud Messaging.