Arka plandaki bir Apple uygulamasına test mesajı gönderin

FCM'yi kullanmaya başlamak için en basit kullanım örneğini oluşturun: Uygulama cihazda arka plandayken Bildirim oluşturucusundan bir geliştirme cihazına bir test bildirim mesajı göndermek. Bu sayfa, kurulumdan doğrulamaya kadar bunu başarmak için gereken tüm adımları listeler - FCM için bir Apple istemci uygulaması kurduysanız, zaten tamamladığınız adımları kapsayabilir.

Apple projenize Firebase ekleyin

Bu bölüm, uygulamanız için diğer Firebase özelliklerini zaten etkinleştirdiyseniz tamamlamış olabileceğiniz görevleri kapsar. Özellikle FCM için , APNs kimlik doğrulama anahtarınızı yüklemeniz ve uzaktan bildirimler için kaydolmanız gerekir.

Önkoşullar

  • Aşağıdakileri yükleyin:

    • Xcode 13.3.1 veya üstü
  • Projenizin şu gereksinimleri karşıladığından emin olun:

    • Projeniz bu platform sürümlerini veya sonraki sürümlerini hedeflemelidir:
      • iOS 10
      • macOS 10.12
      • tvOS 12
      • watchOS 6
  • Uygulamanızı çalıştırmak için fiziksel bir Apple cihazı kurun ve şu görevleri tamamlayın:

    • Apple Geliştirici hesabınız için bir Apple Anında Bildirim Kimlik Doğrulama Anahtarı edinin.
    • XCode'da App > Capabilities altında Push Bildirimlerini etkinleştirin.
  • Google hesabınızı kullanarak Firebase'de oturum açın.

Halihazırda bir Xcode projeniz yoksa ve yalnızca bir Firebase ürününü denemek istiyorsanız, hızlı başlangıç ​​örneklerimizden birini indirebilirsiniz.

Bir Firebase projesi oluşturun

Firebase'i Apple uygulamanıza eklemeden önce uygulamanıza bağlanmak için bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlayın sayfasını ziyaret edin.

Uygulamanızı Firebase'e kaydedin

Firebase'i Apple uygulamanızda kullanmak için uygulamanızı Firebase projenize kaydetmeniz gerekir. Uygulamanızı kaydetmeye genellikle uygulamanızı projenize "eklemek" denir.

  1. Firebase konsoluna gidin.

  2. Projeye genel bakış sayfasının ortasında, kurulum iş akışını başlatmak için iOS+ simgesine tıklayın.

    Firebase projenize zaten bir uygulama eklediyseniz, platform seçeneklerini görüntülemek için Uygulama ekle'yi tıklayın.

  3. Paket kimliği alanına uygulamanızın paket kimliğini girin.

  4. (İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve Uygulama Mağazası Kimliği .

  5. Uygulamayı kaydet'i tıklayın.

Bir Firebase yapılandırma dosyası ekleyin

  1. Firebase Apple platformları yapılandırma dosyanızı ( GoogleService-Info.plist ) almak için GoogleService-Info.plist'i İndir'i tıklayın.

  2. Yapılandırma dosyanızı Xcode projenizin kök dizinine taşıyın. İstenirse, yapılandırma dosyasını tüm hedeflere eklemek için seçin.

Projenizde birden fazla paket kimliğiniz varsa, her uygulamanın kendi GoogleService-Info.plist dosyasına sahip olabilmesi için her paket kimliğini Firebase konsolunda kayıtlı bir uygulamayla ilişkilendirmeniz gerekir.

Uygulamanıza Firebase SDK'ları ekleyin

Firebase bağımlılıklarını kurmak ve yönetmek için Swift Paket Yöneticisi'ni kullanın.

  1. Xcode'da, uygulama projeniz açıkken File > Add Packages seçeneğine gidin.
  2. İstendiğinde, Firebase Apple platformları SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Firebase Bulut Mesajlaşma kitaplığını seçin.
  5. Firebase Bulut Mesajlaşma ile optimum deneyim için, Firebase projenizde Google Analytics'i etkinleştirmenizi ve Google Analytics için Firebase SDK'sını uygulamanıza eklemenizi öneririz. IDFA koleksiyonu olmayan veya IDFA koleksiyonu olan kütüphaneyi seçebilirsiniz.
  6. Bittiğinde, Xcode otomatik olarak bağımlılıklarınızı arka planda çözmeye ve indirmeye başlayacaktır.

APNs kimlik doğrulama anahtarınızı yükleyin

APNs kimlik doğrulama anahtarınızı Firebase'e yükleyin. Halihazırda bir APNs kimlik doğrulama anahtarınız yoksa Apple Developer Üye Merkezi'nde bir tane oluşturduğunuzdan emin olun.

  1. Firebase konsolunda projenizin içinde dişli simgesini seçin, Project Settings öğesini seçin ve ardından Cloud Messaging sekmesini seçin.

  2. iOS uygulama yapılandırması altındaki APNs kimlik doğrulama anahtarında , Yükle düğmesini tıklayın.

  3. Anahtarınızı kaydettiğiniz konuma göz atın, onu seçin ve Aç'ı tıklayın. Anahtarın anahtar kimliğini ekleyin ( Apple Geliştirici Üye Merkezi'nde bulunur ) ve Yükle'yi tıklayın.

Uygulamanızda Firebase'i başlatın

Uygulamanıza Firebase başlatma kodunu eklemeniz gerekecek. Firebase modülünü içe aktarın ve paylaşılan bir örneği gösterildiği gibi yapılandırın:

  1. UIApplicationDelegate FirebaseCore modülünü ve uygulama temsilcinizin kullandığı diğer Firebase modüllerini içe aktarın. Örneğin, Cloud Firestore ve Kimlik Doğrulamayı kullanmak için:

    Süratli

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Amaç-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Genellikle App başlatıcısında veya uygulama temsilcisinin application(_:didFinishLaunchingWithOptions:) yönteminde bir FirebaseApp paylaşılan örneği yapılandırın:

    Süratli

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

    Amaç-C

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

Uzaktan bildirimler için kaydolun

İster başlangıçta ister uygulama akışınızın istediğiniz noktasında, uygulamanızı uzaktan bildirimler için kaydedin. registerForRemoteNotifications gösterildiği gibi arayın:

Süratli

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()

Amaç-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];

Kayıt belirtecine erişin

Belirli bir cihaza mesaj göndermek için o cihazın kayıt jetonunu bilmeniz gerekir. Belirteci, bu öğreticiyi tamamlamak için Bildirim oluşturucusunda bir alana girmeniz gerekeceğinden, aldıktan sonra belirteci kopyaladığınızdan veya güvenli bir şekilde sakladığınızdan emin olun.

Varsayılan olarak, FCM SDK, uygulama başlatıldığında istemci uygulama örneği için bir kayıt belirteci oluşturur. APNs cihaz belirtecine benzer şekilde, bu belirteç, uygulamanızın belirli herhangi bir örneğine hedefli bildirimler göndermenize olanak tanır.

Apple platformlarının uygulama başlangıcında tipik olarak bir APNs aygıt belirteci teslim etmesiyle aynı şekilde, FCM, FIRMessagingDelegate messaging:didReceiveRegistrationToken: yöntemi aracılığıyla bir kayıt belirteci sağlar. FCM SDK, uygulamanın ilk başlatılması sırasında ve belirteç her güncellendiğinde veya geçersiz kılındığında yeni veya mevcut bir belirteç alır. Her durumda, FCM SDK geçerli bir belirteçle messaging:didReceiveRegistrationToken: çağırır.

Kayıt jetonu şu durumlarda değişebilir:

  • Uygulama yeni bir cihaza geri yüklendi
  • Kullanıcı uygulamayı kaldırır/yeniden yükler
  • Kullanıcı uygulama verilerini temizler.

Mesajlaşma temsilcisini ayarlayın

Kayıt belirteçlerini almak için, mesajlaşma delege protokolünü uygulayın ve [FIRApp configure] çağırdıktan sonra FIRMessaging delegate özelliğini ayarlayın. Örneğin, uygulama temsilciniz mesajlaşma temsilcisi protokolüne uyuyorsa, application:didFinishLaunchingWithOptions: üzerindeki temsilciyi kendisine ayarlayabilirsiniz.

Süratli

Messaging.messaging().delegate = self

Amaç-C

[FIRMessaging messaging].delegate = self;

Geçerli kayıt belirtecini getirme

Kayıt belirteçleri, messaging:didReceiveRegistrationToken: . Bu yöntem, kayıt belirteci ile genellikle uygulama başlangıcında bir kez çağrılır. Bu yöntem çağrıldığında, ideal zaman:

  • Kayıt belirteci yeniyse, uygulama sunucunuza gönderin.
  • Kayıt belirtecini konulara abone olun. Bu, yalnızca yeni abonelikler veya kullanıcının uygulamayı yeniden yüklediği durumlar için gereklidir.

Belirteci doğrudan token(completion:) kullanarak alabilirsiniz. Belirteç alımı herhangi bir şekilde başarısız olursa, boş olmayan bir hata sağlanır.

Süratli

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)"
  }
}

Amaç-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;
  }
}];

Belirteci depolamak yerine erişmek için istediğiniz zaman bu yöntemi kullanabilirsiniz.

Belirteç yenilemeyi izle

Belirteç her güncellendiğinde bilgilendirilmek için mesajlaşma delege protokolüne uygun bir temsilci sağlayın. Aşağıdaki örnek, temsilciyi kaydeder ve uygun temsilci yöntemini ekler:

Süratli

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.
}

Amaç-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.
}

Alternatif olarak, bir temsilci yöntemi sağlamak yerine NSNotification adlı bir kFIRMessagingRegistrationTokenRefreshNotification dinleyebilirsiniz. Belirteç özelliği her zaman geçerli belirteç değerine sahiptir.

Bir bildirim mesajı gönder

  1. Uygulamayı hedef cihaza yükleyin ve çalıştırın. Uzak bildirimleri almak için izin isteğini kabul etmeniz gerekir.

  2. Uygulamanın cihazda arka planda olduğundan emin olun.

  3. Bildirim oluşturucuyu açın ve Yeni bildirim'i seçin.

  4. Mesaj metnini girin.

  5. Test mesajı gönder'i seçin.

  6. Add an FCM kayıt belirteci etiketli alana, bu kılavuzun önceki bir bölümünde edindiğiniz kayıt belirtecini girin.

  7. Testi tıklayın

Test 'i tıkladıktan sonra, hedeflenen istemci cihaz (uygulama arka plandayken) bildirim merkezinde bildirimi almalıdır.

Uygulamanıza ileti teslimine ilişkin bilgi için, Android uygulamaları için "gösterimler" (kullanıcılar tarafından görülen bildirimler) verileriyle birlikte Apple ve Android cihazlarda gönderilen ve açılan iletilerin sayısını kaydeden FCM raporlama panosuna bakın.

Sonraki adımlar

Bildirim mesajlarının ötesine geçmek ve uygulamanıza başka, daha gelişmiş davranışlar eklemek için bkz.: