הטמעה ל-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].

שימו לב: על מנת לצפות ביצירה של אסימונים להעברת הודעות בענן, יש משתמש ספציפי שמקבל גישה.