הדוגמאות הבאות יעזרו לכם להטמיע מזהה מכונה בלקוח 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]
.
שימו לב שבשביל יצירת אסימונים להעברת הודעות בענן, יש מקבל גישה ספציפי.