ตัวอย่างต่อไปนี้จะช่วยคุณติดตั้งใช้งานรหัสอินสแตนซ์ในไคลเอ็นต์ iOS โปรดทราบว่าตัวอย่างเหล่านี้ใช้ขอบเขต GCM ซึ่งคุณจะใช้เพื่อ จัดการโทเค็นสําหรับไคลเอ็นต์ iOS สําหรับ Firebase Cloud Messaging
ตั้งค่าทรัพยากร Dependency ของ CocoaPods
รหัสอินสแตนซ์ใช้ CocoaPods ในการติดตั้งและ จัดการทรัพยากร Dependency เปิดหน้าต่างเทอร์มินัลแล้วไปที่ตำแหน่งของโปรเจ็กต์ 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);
}
}];
โทเค็นการรีเฟรช
บริการรหัสอินสแตนซ์อาจสร้างหรือสร้างโทเค็นใหม่ เมื่อเกิดเหตุการณ์นี้ขึ้น ระบบจะส่ง
การแจ้งเตือน คุณฟังการแจ้งเตือนนี้ได้โดยเพิ่ม
Observer สำหรับการแจ้งเตือนที่ชื่อ kFIRInstanceIDTokenRefreshNotification
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
ต้องสร้าง Observer นี้ก่อนสร้างโทเค็น เช่น
ก่อนเรียกใช้ [FIRApp configure]
คุณเรียกโทเค็นล่าสุดได้โดย
โทรหา [[FIRInstanceID instanceID] token]
โปรดทราบว่าสำหรับการสังเกตการสร้างโทเค็นสำหรับการรับส่งข้อความในระบบคลาวด์ จะมีผู้มอบสิทธิ์เฉพาะ