Penerapan iOS

Contoh berikut akan membantu Anda menerapkan Instance ID di klien iOS. Perhatikan bahwa contoh-contoh ini menggunakan ruang lingkup GCM, yang akan Anda gunakan untuk mengelola token untuk klien iOS untuk Firebase Cloud Messaging.

Menyiapkan dependensi CocoaPods Anda

ID instance menggunakan CocoaPods untuk menginstal dan mengelola dependensi. Buka jendela terminal dan arahkan ke lokasi Project Xcode untuk aplikasi Anda. Jika Anda belum membuat Podfile untuk aplikasi Anda, buat akun sekarang:

pod init

Buka Podfile yang dibuat untuk aplikasi Anda dan tambahkan yang berikut ini:

pod 'FirebaseInstanceId'

Simpan file dan jalankan:

pod install

Tindakan ini akan membuat file .xcworkspace untuk aplikasi Anda. Gunakan file ini untuk semua pengembangan aplikasi Anda di masa mendatang.

Membuat token

Pembuatan token memerlukan Project ID yang dibuat oleh 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) {
                      // ...
}];

Mengelola token dan ID Instance

ID instance memungkinkan Anda menghapus dan memuat ulang token.

Menghapus token dan ID 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];

Anda juga dapat menghapus ID {i>Instance <i}itu sendiri, yang dalam hal ini ketika berikutnya Anda memanggil getInstance() Anda akan mendapatkan ID Instance baru:

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

Token refresh

Layanan ID Instance dapat membuat atau menghasilkan kembali token. Ketika ini terjadi, notifikasi akan dikirim. Anda dapat mendengarkan notifikasi ini dengan menambahkan observer untuk notifikasi bernama kFIRInstanceIDTokenRefreshNotification.

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

Observer ini harus dibuat sebelum token dibuat, misalnya sebelum memanggil [FIRApp configure]. Token terbaru dapat diambil oleh memanggil [[FIRInstanceID instanceID] token].

Perhatikan bahwa untuk mengamati pembuatan token untuk Cloud Messaging, ada delegasi tertentu yang tersedia.