التنفيذ على نظام التشغيل iOS

ستساعدك الأمثلة التالية في تنفيذ Instance ID في جهاز iOS. يُرجى العِلم أنّ هذه الأمثلة تستخدم نطاق GCM الذي يمكنك استخدامه لإدارة الرموز المميّزة لعميل iOS في المراسلة عبر السحابة الإلكترونية من Firebase.

إعداد ملحقات CocoaPods

يستخدم معرّف المثيل CocoaPods لتثبيت الملحقات وإدارتها. افتح نافذة أوامر طرفية وانتقِل إلى موقع مشروع Xcode لتطبيقك. إذا لم يسبق لك إنشاء Podfile لتطبيقك، أنشئ واحدًا الآن:

pod init

افتح ملف Podfile الذي تم إنشاؤه لتطبيقك وأضِف ما يلي:

pod 'FirebaseInstanceId'

احفظ الملف وشغِّل:

pod install

يؤدي هذا إلى إنشاء ملف .xcworkspace لتطبيقك. استخدِم هذا الملف لكل عمليات التطوير المستقبلية في تطبيقك.

إنشاء رمز مميّز

يتطلّب إنشاء الرموز المميزة توفّر معرّف مشروع تم إنشاؤه من خلال 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) {
                      // ...
}];

إدارة الرموز المميزة وأرقام تعريف المثيل

يتيح لك معرّف المثيل حذف الرموز المميزة وإعادة تحميلها.

حذف الرموز المميزة وأرقام تعريف المثيل

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

يمكنك أيضًا حذف رقم تعريف المثيل نفسه، وفي هذه الحالة، ستحصل على رقم تعريف مثيل جديد في المرة التالية التي تتصل فيها بـ getInstance():

[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].

يُرجى العِلم أنّه لمراقبة عملية إنشاء الرموز المميزة لخدمة &quot;المراسلة عبر السحابة الإلكترونية&quot;، يتوفّر مفوّض محدّد.