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

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

ตั้งค่าทรัพยากร Dependency ของ 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]

โปรดทราบว่าสำหรับการสังเกตการณ์การสร้างโทเค็นสำหรับ Cloud Messaging มี ตัวแทนที่เจาะจงได้