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 Projet Xcode de votre application. Si vous n'avez pas encore créé de fichier Podfile pour votre application, créez-en une 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. Utiliser ce fichier pour tous
le développement futur 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, auquel cas la prochaine fois que vous appellerez
getInstance()
, vous obtenez 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,
sera 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é par
Appel de [[FIRInstanceID instanceID] token]
en cours.
Notez que pour observer la génération de jetons pour Cloud Messaging, il existe un un délégué spécifique disponible.