Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

ส่งข้อความทดสอบไปยังแอป iOS ที่ทำงานอยู่เบื้องหลัง

การเริ่มต้นกับ FCM สร้างจากกรณีการใช้งานที่ง่าย: การส่งข้อความแจ้งเตือนการทดสอบจาก นักแต่งเพลงการแจ้งเตือน ไปยังอุปกรณ์การพัฒนาเมื่อ app อยู่ในพื้นหลังบนอุปกรณ์ หน้านี้แสดงทุกขั้นตอนเพื่อให้บรรลุนี้จากการตรวจสอบการติดตั้ง - มันอาจจะครอบคลุมขั้นตอนที่คุณเสร็จสิ้นแล้วถ้าคุณได้ ตั้งค่า app ลูกค้า iOS สำหรับ FCM

เพิ่ม Firebase ให้กับโปรเจ็กต์ iOS ของคุณ

ส่วนนี้ครอบคลุมงานที่คุณอาจทำเสร็จแล้ว หากคุณได้เปิดใช้งานคุณลักษณะ Firebase อื่นๆ สำหรับแอปของคุณแล้ว สำหรับ FCM เฉพาะคุณจะต้อง อัปโหลดที่สำคัญการตรวจสอบ APNs ของคุณ และ ลงทะเบียนสำหรับการแจ้งเตือนระยะไกล

ข้อกำหนดเบื้องต้น

  • ติดตั้งสิ่งต่อไปนี้:

    • Xcode 12.2 หรือใหม่กว่า
    • CocoaPods 1.10.0 หรือใหม่กว่า
  • ตรวจสอบให้แน่ใจว่าโครงการของคุณตรงตามข้อกำหนดเหล่านี้:

    • โปรเจ็กต์ของคุณต้องกำหนดเป้าหมายเป็น iOS 10 หรือใหม่กว่า
  • ตั้งค่าอุปกรณ์ iOS ทางกายภาพเพื่อใช้ app ของคุณและให้งานเหล่านี้:

หากคุณไม่ได้มีโครงการ Xcode และเพียงแค่ต้องการที่จะลองผลิตภัณฑ์ Firebase คุณสามารถดาวน์โหลดหนึ่งของเรา ตัวอย่าง QuickStart

สร้างโปรเจ็กต์ Firebase

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

ลงทะเบียนแอปของคุณด้วย Firebase

หลังจากคุณมีโปรเจ็กต์ Firebase แล้ว คุณสามารถเพิ่มแอป iOS ลงไปได้

เยี่ยมชม เข้าใจโครงการ Firebase ที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการปฏิบัติที่ดีที่สุดและการพิจารณาสำหรับการเพิ่มแอพพลิเคกับโครงการ Firebase รวมถึงวิธีการจัดการกับการสร้างสายพันธุ์หลาย

  1. ไปที่ คอนโซล Firebase

  2. ในใจกลางของหน้าภาพรวมโครงการให้คลิกที่ไอคอน iOS ( ) ที่จะเปิดตัวเวิร์กโฟลว์การติดตั้ง

    หากคุณได้เพิ่มแอพในโครงการ Firebase ของคุณให้คลิกเพิ่มแอปเพื่อแสดงตัวเลือกแพลตฟอร์ม

  3. ใส่รหัสชุดของแอปในช่องรหัสกำ iOS

  4. (อุปกรณ์เสริม) ป้อนข้อมูลตรวจสอบอื่น ๆ : ชื่อเล่น App และ App Store ID

  5. คลิกแอปสมัครสมาชิก

เพิ่มไฟล์การกำหนดค่า Firebase

  1. คลิกดาวน์โหลด GoogleService-Info.plist ที่จะได้รับไฟล์ config Firebase iOS ของคุณ ( GoogleService-Info.plist )

  2. ย้ายไฟล์ปรับแต่งของคุณไปที่รูทของโปรเจ็กต์ Xcode หากได้รับแจ้ง ให้เลือกเพื่อเพิ่มไฟล์กำหนดค่าไปยังเป้าหมายทั้งหมด

หากคุณมีรหัสมัดในหลายโครงการของคุณคุณต้องเชื่อมโยง ID แต่ละมัดกับแอปที่ลงทะเบียนใน Firebase คอนโซลเพื่อให้แอปแต่ละคนสามารถมีของตัวเอง GoogleService-Info.plist ไฟล์

เพิ่ม Firebase SDK ให้กับแอปของคุณ

เราขอแนะนำให้ใช้ CocoaPods การติดตั้งห้องสมุด Firebase แต่ถ้าคุณไม่ต้องการใช้ CocoaPods คุณสามารถ บูรณาการกรอบ SDK โดยตรง หรือใช้ สวิฟท์แพคเกจจัดการ แทน

คุณกำลังใช้หนึ่งใน ตัวอย่าง QuickStart ? โครงการ Xcode และ Podfile (ฝัก) มีอยู่แล้ว แต่คุณยังจะต้อง เพิ่มการตั้งค่าไฟล์ Firebase ของคุณ และติดตั้งฝัก

  1. สร้าง Podfile หากคุณยังไม่มี:

    cd your-project-directory
    pod init
  2. ใน Podfile ของคุณ ให้เพิ่มพ็อด Firebase ที่คุณต้องการใช้ในแอปของคุณ

    คุณสามารถเพิ่มใด ๆ ของ ผลิตภัณฑ์ Firebase สนับสนุน ไปยังแอป iOS ของคุณ

    สำหรับประสบการณ์ที่ดีที่สุดกับ Firebase Cloud Messaging เราขอแนะนำให้ เปิดใช้งาน Google Analytics ในโครงการของคุณ นอกจากนี้ ในการตั้งค่า Analytics คุณต้องเพิ่ม Firebase SDK สำหรับ Analytics ในแอปของคุณ

    เปิดใช้งานการวิเคราะห์

    # Add the Firebase pod for Google Analytics
    pod 'Firebase/Analytics'
    
    # For Analytics without IDFA collection capability, use this pod instead
    # pod ‘Firebase/AnalyticsWithoutAdIdSupport’
    
    # Add the pod for Firebase Cloud Messaging
    pod 'Firebase/Messaging'

    เรียนรู้เพิ่มเติมเกี่ยว IDFA ระบุการโฆษณาระดับอุปกรณ์ในแอปเปิ้ลของ ความเป็นส่วนตัวของผู้ใช้และการใช้ข้อมูล และ App ติดตามความโปร่งใส เอกสาร

    ไม่ได้เปิดใช้งานการวิเคราะห์

    # Add the pod for Firebase Cloud Messaging
    pod 'Firebase/Messaging'
  3. ติดตั้งฝักแล้วเปิดของคุณ .xcworkspace ของไฟล์เพื่อดูโครงการใน Xcode นี้:

    pod install
    open your-project.xcworkspace

อัปโหลดคีย์การตรวจสอบสิทธิ์ APN ของคุณ

อัปโหลดคีย์การตรวจสอบสิทธิ์ APN ของคุณไปยัง Firebase หากคุณไม่ได้มีการตรวจสอบที่สำคัญ APNs ให้แน่ใจว่าจะสร้างหนึ่งใน แอปเปิ้ลผู้พัฒนาศูนย์สมาชิก

  1. ภายในโครงการของคุณใน Firebase คอนโซลเลือกไอคอนรูปเฟืองเลือกการตั้งค่าโครงการแล้วเลือกแท็บ Messaging เมฆ

  2. ในการตรวจสอบที่สำคัญ APNs ภายใต้การตั้งค่าแอป iOS คลิกปุ่มอัปโหลด

  3. เรียกดูตำแหน่งที่คุณบันทึกสำคัญของคุณให้เลือกและคลิกเปิด เพิ่ม ID ที่สำคัญสำหรับคีย์ (ที่มีอยู่ใน แอปเปิ้ลผู้พัฒนาศูนย์สมาชิก ) และคลิกอัพโหลด

เริ่มต้น Firebase ในแอปของคุณ

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

  1. นำเข้าโมดูล Firebase ในของคุณ UIApplicationDelegate :

    Swift

    import Firebase

    วัตถุประสงค์-C

    @import Firebase;
  2. กำหนดค่า FirebaseApp ที่ใช้ร่วมกันเช่นปกติในของแอป application:didFinishLaunchingWithOptions: วิธีการ:

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    วัตถุประสงค์-C

    // Use Firebase library to configure APIs
    [FIRApp configure];

ลงทะเบียนเพื่อรับการแจ้งเตือนทางไกล

เมื่อเริ่มต้นระบบหรือ ณ จุดที่ต้องการในขั้นตอนแอปพลิเคชันของคุณ ให้ลงทะเบียนแอปของคุณเพื่อรับการแจ้งเตือนจากระยะไกล โทร registerForRemoteNotifications ดังแสดง:

Swift

if #available(iOS 10.0, *) {
  // For iOS 10 display notification (sent via APNS)
  UNUserNotificationCenter.current().delegate = self

  let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
  UNUserNotificationCenter.current().requestAuthorization(
    options: authOptions,
    completionHandler: { _, _ in }
  )
} else {
  let settings: UIUserNotificationSettings =
    UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
  application.registerUserNotificationSettings(settings)
}

application.registerForRemoteNotifications()

วัตถุประสงค์-C

if ([UNUserNotificationCenter class] != nil) {
  // iOS 10 or later
  // For iOS 10 display notification (sent via APNS)
  [UNUserNotificationCenter currentNotificationCenter].delegate = self;
  UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
      UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
  [[UNUserNotificationCenter currentNotificationCenter]
      requestAuthorizationWithOptions:authOptions
      completionHandler:^(BOOL granted, NSError * _Nullable error) {
        // ...
      }];
} else {
  // iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
  UIUserNotificationType allNotificationTypes =
  (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
  UIUserNotificationSettings *settings =
  [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
  [application registerUserNotificationSettings:settings];
}

[application registerForRemoteNotifications];

เข้าถึงโทเค็นการลงทะเบียน

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

โดยค่าเริ่มต้น FCM SDK จะสร้างโทเค็นการลงทะเบียนสำหรับอินสแตนซ์แอปไคลเอ็นต์ในการเปิดใช้แอป เช่นเดียวกับโทเค็นอุปกรณ์ APN โทเค็นนี้ช่วยให้คุณส่งการแจ้งเตือนที่กำหนดเป้าหมายไปยังอินสแตนซ์เฉพาะของแอปของคุณ

ในลักษณะเดียวกับที่ iOS ของคุณมักจะมอบอุปกรณ์ APNs token ในการเริ่มต้นแอป FCM ให้ลงทะเบียนผ่านทาง token FIRMessagingDelegate 's messaging:didReceiveRegistrationToken: วิธีการ FCM SDK จะดึงโทเค็นใหม่หรือโทเค็นที่มีอยู่ในระหว่างการเปิดแอปครั้งแรกและเมื่อใดก็ตามที่โทเค็นได้รับการอัปเดตหรือทำให้ใช้งานไม่ได้ ในทุกกรณีที่ FCM SDK เรียก messaging:didReceiveRegistrationToken: กับโทเค็นที่ถูกต้อง

โทเค็นการลงทะเบียนอาจเปลี่ยนแปลงเมื่อ:

  • แอพถูกกู้คืนในอุปกรณ์ใหม่
  • ผู้ใช้ถอนการติดตั้ง/ติดตั้งแอปอีกครั้ง
  • ผู้ใช้ล้างข้อมูลแอป

ตั้งผู้รับมอบสิทธิ์การส่งข้อความ

ที่จะได้รับโทเค็นการลงทะเบียนใช้โปรโตคอลการส่งข้อความและการตั้งค่าของผู้ร่วมประชุม FIRMessaging 's delegate ทรัพย์สินหลังจากเรียก [FIRApp configure] ตัวอย่างเช่นถ้าผู้รับมอบสิทธิ์ใช้งานของคุณเป็นไปตามโปรโตคอลการส่งข้อความตัวแทนคุณสามารถตั้งค่าผู้รับมอบสิทธิ์ใน application:didFinishLaunchingWithOptions: กับตัวเอง

Swift

Messaging.messaging().delegate = self

วัตถุประสงค์-C

[FIRMessaging messaging].delegate = self;

กำลังเรียกโทเค็นการลงทะเบียนปัจจุบัน

ราชสกุลที่ลงทะเบียนจะถูกส่งผ่านวิธีการ messaging:didReceiveRegistrationToken: โดยทั่วไปจะเรียกวิธีนี้ 1 ครั้งต่อแอปที่เริ่มต้นด้วยโทเค็นการลงทะเบียน เมื่อเรียกวิธีนี้ เป็นเวลาที่เหมาะสมที่สุดที่จะ:

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

คุณสามารถเรียกโทเค็นโดยตรงโดยใช้ โทเค็น (เสร็จ :) มีข้อผิดพลาดที่ไม่เป็นค่าว่างหากการดึงโทเค็นล้มเหลวไม่ว่าในทางใด

Swift

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching FCM registration token: \(error)")
  } else if let token = token {
    print("FCM registration token: \(token)")
    self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
  }
}

วัตถุประสงค์-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
  if (error != nil) {
    NSLog(@"Error getting FCM registration token: %@", error);
  } else {
    NSLog(@"FCM registration token: %@", token);
    self.fcmRegTokenMessage.text = token;
  }
}];

คุณสามารถใช้วิธีนี้ได้ทุกเมื่อเพื่อเข้าถึงโทเค็นแทนการจัดเก็บ

ตรวจสอบการรีเฟรชโทเค็น

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

Swift

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
  print("Firebase registration token: \(String(describing: fcmToken))")

  let dataDict: [String: String] = ["token": fcmToken ?? ""]
  NotificationCenter.default.post(
    name: Notification.Name("FCMToken"),
    object: nil,
    userInfo: dataDict
  )
  // TODO: If necessary send token to application server.
  // Note: This callback is fired at each app startup and whenever a new token is generated.
}

วัตถุประสงค์-C

- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
    NSLog(@"FCM registration token: %@", fcmToken);
    // Notify about received token.
    NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"];
    [[NSNotificationCenter defaultCenter] postNotificationName:
     @"FCMToken" object:nil userInfo:dataDict];
    // TODO: If necessary send token to application server.
    // Note: This callback is fired at each app startup and whenever a new token is generated.
}

หรือคุณสามารถฟังสำหรับ NSNotification ชื่อ kFIRMessagingRegistrationTokenRefreshNotification มากกว่าการจัดหาวิธีการมอบหมาย คุณสมบัติโทเค็นมีค่าโทเค็นปัจจุบันเสมอ

ส่งข้อความแจ้งเตือน

  1. ติดตั้งและเรียกใช้แอปบนอุปกรณ์เป้าหมาย คุณจะต้องยอมรับคำขออนุญาตเพื่อรับการแจ้งเตือนระยะไกล

  2. ตรวจสอบให้แน่ใจว่าแอปอยู่ในพื้นหลังบนอุปกรณ์

  3. เปิด แต่งเพลงการแจ้งเตือน และเลือกการแจ้งเตือนใหม่

  4. ป้อนข้อความ

  5. ข้อความทดสอบเลือกส่ง

  6. ในฟิลด์ที่มีข้อความเพิ่มโทเค็นการลงทะเบียน FCM ป้อนลงทะเบียนโทเค็นคุณได้รับในส่วนที่ก่อนหน้านี้ของคู่มือนี้

  7. คลิกทดสอบ

หลังจากที่คุณคลิกทดสอบอุปกรณ์ของลูกค้าที่ตรงเป้าหมาย (กับ app ในพื้นหลัง) ควรได้รับการแจ้งเตือนในศูนย์การแจ้งเตือน

สำหรับความเข้าใจในการจัดส่งข้อความไปยังแอปของคุณให้ดูที่ แผงควบคุมการรายงาน FCM ซึ่งบันทึกจำนวนข้อความที่ส่งและเปิดบนอุปกรณ์ iOS และ Android พร้อมกับข้อมูล "การแสดงผล" (การแจ้งเตือนผู้ใช้เห็น) สำหรับแอป Android

ขั้นตอนถัดไป

หากต้องการไปไกลกว่าข้อความแจ้งเตือนและเพิ่มลักษณะการทำงานขั้นสูงอื่นๆ ในแอปของคุณ โปรดดูที่: