Les exemples suivants vous aideront à implémenter l'ID d'instance dans un client iOS. Notez que ces exemples utilisent la portée GCM, que vous utiliserez 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 fichier Podfile créé pour votre application et ajoutez les éléments suivants:
pod 'FirebaseInstanceId'
Enregistrez le fichier et exécutez :
pod install
Cela crée un fichier .xcworkspace
pour votre application. Utilisez ce fichier pour tous les développements futurs 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 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) {
// ...
}];
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, vous obtiendrez un nouvel ID d'instance la prochaine fois que vous appellerez getInstance()
:
[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 régé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ées 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.