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

ตัวอย่างต่อไปนี้จะช่วยคุณในการติดตั้งใช้งานรหัสอินสแตนซ์ในไคลเอ็นต์ 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);
      }
    }];

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

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

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

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

โปรดทราบว่ามีการมอบสิทธิ์เฉพาะเพื่อเฝ้าดูการสร้างโทเค็นของ Cloud Messaging