Poniższe przykłady pomogą Ci wdrożyć identyfikator instancji w kliencie na iOS. Zwróć uwagę, że te przykłady korzystają z zakresu GCM, którego możesz użyć do zarządzania tokenami dla klienta iOS obsługującego Komunikację w chmurze Firebase.
Konfigurowanie zależności CocoaPods
Identyfikator instancji używa CocoaPods do instalacji zależności i zarządzania nimi. Otwórz okno terminala i przejdź do lokalizacji projektu Xcode dla Twojej aplikacji. Jeśli nie masz jeszcze pliku Podfile dla aplikacji, utwórz go teraz:
pod init
Otwórz plik Podfile utworzony dla Twojej aplikacji i dodaj następujące wpisy:
pod 'FirebaseInstanceId'
Zapisz plik i uruchom:
pod install
Spowoduje to utworzenie pliku .xcworkspace
dla aplikacji. Używaj tego pliku do dalszego programowania aplikacji.
Wygeneruj token
Aby wygenerować tokeny, wymagany jest identyfikator projektu wygenerowany w 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) {
// ...
}];
Zarządzanie tokenami i identyfikatorami instancji
Identyfikator instancji umożliwia usuwanie i odświeżanie tokenów.
Usuń tokeny i identyfikatory instancji
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];
Możesz też usunąć sam identyfikator instancji. W takim przypadku następnym razem, gdy wywołasz zdarzenie getInstance()
, otrzymasz nowy identyfikator:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Odśwież tokeny
Usługa identyfikatora instancji może tworzyć lub ponownie generować tokeny. Wysyłane jest powiadomienie. Aby odsłuchać to powiadomienie, dodaj obserwatora powiadomień o nazwie kFIRInstanceIDTokenRefreshNotification
.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Musisz utworzyć obserwatora przed utworzeniem tokena, na przykład przed wywołaniem [FIRApp configure]
. Najnowszy token można pobrać, wywołując [[FIRInstanceID instanceID] token]
.
Pamiętaj, że do obserwowania generowania tokenów na potrzeby Komunikacji w chmurze dostępny jest określony przedstawiciel.