การติดตั้งใช้งาน 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);
      }
    }];

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

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

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

ต้องสร้าง Observer นี้ก่อนสร้างโทเค็น เช่น ก่อนเรียกใช้ [FIRApp configure] คุณเรียกโทเค็นล่าสุดได้โดย โทรหา [[FIRInstanceID instanceID] token]

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