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

ستساعدك الأمثلة التالية على تنفيذ معرّف المثيل في عميل 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);
      }
    }];

الرموز المميّزة لإعادة التحميل

قد تنشئ خدمة "معرّف المثيل" رموزًا مميّزة أو تعيد إنشائها. وعند حدوث ذلك، سيتم إرسال إشعار. يمكنك الاستماع إلى هذا الإشعار من خلال إضافة مراقب للإشعارات باسم kFIRInstanceIDTokenRefreshNotification.

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

يجب إنشاء هذا المراقب قبل إنشاء الرمز المميّز، مثلاً قبل طلب [FIRApp configure]. يمكنك استرداد أحدث رمز عن طريق الاتصال بـ [[FIRInstanceID instanceID] token].

تجدر الإشارة إلى أنّه هناك مفوَّض محدّد متاح لملاحظة إنشاء الرموز المميّزة لخدمة "المراسلة عبر السحابة الإلكترونية".