پیاده سازی iOS

مثال‌های زیر به شما کمک می‌کنند تا Instance ID را در یک کلاینت iOS پیاده‌سازی کنید. توجه داشته باشید که این نمونه‌ها از محدوده GCM استفاده می‌کنند که می‌توانید از آن برای مدیریت نشانه‌های یک کلاینت iOS برای Firebase Cloud Messaging استفاده کنید.

وابستگی های CocoaPods خود را تنظیم کنید

Instance ID از CocoaPods برای نصب و مدیریت وابستگی ها استفاده می کند. یک پنجره ترمینال را باز کنید و به محل پروژه Xcode برای برنامه خود بروید. اگر قبلاً یک Podfile برای برنامه خود ایجاد نکرده اید، اکنون یکی از آن ها را ایجاد کنید:

pod init

Podfile ایجاد شده برای برنامه خود را باز کنید و موارد زیر را اضافه کنید:

pod 'FirebaseInstanceId'

فایل را ذخیره کرده و اجرا کنید:

pod install

این یک فایل .xcworkspace برای برنامه شما ایجاد می کند. از این فایل برای تمام توسعه های آینده برنامه خود استفاده کنید.

یک توکن تولید کنید

برای تولید توکن ها به شناسه پروژه نیاز است که توسط کنسول توسعه دهندگان Google ایجاد شده است.

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) {
                      // ...
}];

توکن ها و شناسه های نمونه را مدیریت کنید

Instance ID به شما امکان می‌دهد توکن‌ها را حذف و به‌روزرسانی کنید.

توکن ها و شناسه های نمونه را حذف کنید

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

شما همچنین می توانید ID Instance را حذف کنید، در این صورت دفعه بعد که getInstance() تماس می گیرید، یک Instance ID جدید دریافت خواهید کرد:

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

بازخوانی نشانه ها

سرویس Instance ID ممکن است توکن ها را ایجاد یا بازسازی کند. هنگامی که این اتفاق می افتد، یک اعلان ارسال می شود. می توانید با افزودن یک ناظر برای اعلان ها به نام kFIRInstanceIDTokenRefreshNotification به این اعلان گوش دهید.

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

این ناظر باید قبل از ایجاد نشانه ایجاد شود، به عنوان مثال قبل از فراخوانی [FIRApp configure] . آخرین نشانه را می توان با فراخوانی [[FIRInstanceID instanceID] token] بازیابی کرد.

توجه داشته باشید که برای مشاهده تولید توکن‌ها برای پیام‌رسانی ابری، یک نماینده خاص در دسترس است.