การติดตั้งใช้งาน iOS

ตัวอย่างต่อไปนี้จะช่วยคุณในการใช้งานรหัสอินสแตนซ์ในไคลเอ็นต์ iOS โปรดทราบว่าตัวอย่างเหล่านี้ใช้ขอบเขต GCM ซึ่งคุณจะใช้จัดการโทเค็นของไคลเอ็นต์ iOS สำหรับการรับส่งข้อความในระบบคลาวด์ของ Firebase

ตั้งค่าทรัพยากร 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);
      }
    }];

โทเค็นการรีเฟรช

บริการรหัสอินสแตนซ์อาจสร้างหรือสร้างโทเค็นใหม่ เมื่อกรณีนี้เกิดขึ้น ระบบจะส่งการแจ้งเตือน คุณฟังการแจ้งเตือนนี้ได้โดยเพิ่มผู้สังเกตการณ์สำหรับการแจ้งเตือนที่ชื่อว่า kFIRInstanceIDTokenRefreshNotification

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

โดยต้องสร้างเครื่องมือสังเกตการณ์นี้ก่อนสร้างโทเค็น เช่น ก่อนเรียกใช้ [FIRApp configure] คุณจะเรียกข้อมูลโทเค็นล่าสุดได้เมื่อเรียกใช้ [[FIRInstanceID instanceID] token]

โปรดทราบว่าสำหรับการสังเกตการณ์การสร้างโทเค็นสำหรับ Cloud Messaging จะมีการมอบสิทธิ์ที่เฉพาะเจาะจงอยู่