Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Arka plandaki bir iOS uygulamasına test mesajı gönderme

FCM'yi kullanmaya başlamak için en basit kullanım senaryosunu oluşturun: Uygulama cihazın arka planındayken Bildirimler bestecisinden bir geliştirme cihazına test bildirim mesajı gönderme. Bu sayfa, kurulumdan doğrulamaya kadar bunu başarmak için tüm adımları listeler - FCM için bir iOS istemci uygulaması ayarladıysanız, tamamlamış olduğunuz adımları kapsayabilir.

İOS projenize Firebase ekleyin

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

Ön şartlar

  • Aşağıdakileri yükleyin:

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

    • Projeniz iOS 8 veya daha yenisini hedeflemelidir.
  • Uygulamanızı çalıştırmak için fiziksel bir iOS cihazı ayarlayın ve şu görevleri tamamlayın:

    • Apple Developer hesabınız için bir Apple Anında Bildirim Kimlik Doğrulama Anahtarı edinin.
    • Uygulama> Yetenekler altında XCode'da Anlık Bildirimleri etkinleştirin.
  • Google hesabınızı kullanarak Firebase'de oturum açın.

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

Bir Firebase projesi oluşturma

İOS uygulamanıza Firebase eklemeden önce, iOS 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 Anlama sayfasını ziyaret edin.

Uygulamanızı Firebase'e kaydedin

Bir Firebase projenizden sonra, iOS uygulamanızı buna ekleyebilirsiniz.

Birden çok derleme varyantının nasıl işleneceği de dahil olmak üzere bir Firebase projesine uygulama eklemeyle ilgili en iyi uygulamalar ve dikkat edilecek noktalar hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama sayfasını ziyaret edin.

  1. Firebase konsoluna gidin .

  2. Projeye genel bakış sayfasının , kurulum iş akışını başlatmak için iOS simgesini ( ) 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. Uygulamanızın paket kimliğini iOS paket kimliği alanına girin.

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

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

Bir Firebase yapılandırma dosyası ekleme

  1. Firebase iOS yapılandırma dosyanızı ( GoogleService-Info.plist ) edinmek 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 eklemeyi seçin.

Projenizde birden fazla paket kimliğiniz varsa, her paket kimliğini Firebase konsolunda kayıtlı bir uygulamayla ilişkilendirmeniz gerekir, böylece her uygulamanın kendi GoogleService-Info.plist dosyası olabilir.

Firebase SDK'larını uygulamanıza ekleyin

Firebase kitaplıklarını kurmak için CocoaPods kullanmanızı öneririz . Ancak, CocoaPod'ları kullanmak istemiyorsanız, SDK çerçevelerini doğrudan entegre edebilirsiniz.

Hızlı başlangıç ​​örneklerinden birini mi kullanıyorsunuz? Xcode projesi ve Podfile (bölmelerle) zaten var, ancak yine de Firebase yapılandırma dosyanızı eklemeniz ve bölmeleri yüklemeniz gerekecek.

  1. Zaten bir tane yoksa bir Pod dosyası oluşturun:

    cd your-project-directory 
    pod init
  2. Pod dosyanıza, uygulamanızda kullanmak istediğiniz Firebase bölmelerini ekleyin.

    Desteklenen Firebase ürünlerinden herhangi birini iOS uygulamanıza ekleyebilirsiniz.

    Firebase Cloud Messaging ile en iyi deneyimi elde etmek için projenizde Google Analytics'i etkinleştirmenizi öneririz. Ayrıca, Analytics kurulumunun bir parçası olarak, uygulamanıza Analytics için Firebase SDK'sını eklemeniz gerekir.

    Analytics etkin

    # Add the Firebase pod for Google Analytics
    pod 'Firebase/Analytics'
    # Add the pod for Firebase Cloud Messaging pod 'Firebase/Messaging'

    Analytics etkin değil

    # Add the pod for Firebase Cloud Messaging
    pod 'Firebase/Messaging'
  3. Bölmeleri yükleyin, ardından projeyi .xcworkspace görmek için .xcworkspace dosyanızı açın:

    pod install
    open your-project .xcworkspace

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

APN kimlik doğrulama anahtarınızı Firebase'e yükleyin. Henüz bir APN kimlik doğrulama anahtarınız yoksa APN'leri FCM ile yapılandırma konusuna bakın.

  1. Firebase konsolundaki projenizin içinde dişli çark simgesini, Proje Ayarları'nı ve ardından Bulut Mesajlaşma sekmesini seçin.

  2. İOS uygulama yapılandırması altındaki APN kimlik doğrulama anahtarında Yükle düğmesini tıklayın.

  3. , Anahtarını kaydettiğiniz konuma gidin, dosyayı seçin ve Aç'ı tıklayın. (Sertifikalar, içinde identifikatörler & Profiles mevcut anahtar için anahtar kimliği ekle Elma Geliştirici Üye Merkezi ) ve Yükle'yi tıklayın.

Firebase'i uygulamanızda başlat

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

  1. Sizin de Firebase modülü içe UIApplicationDelegate :

    hızlı

    import Firebase

    Objective-C

    @import Firebase;
  2. FirebaseApp paylaşılan örneğini, genellikle uygulamanızın uygulamasında yapılandırın application:didFinishLaunchingWithOptions: method:

    hızlı

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

    Objective-C

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

Uzaktan bildirimler için kaydolun

Başlangıçta veya uygulama akışınızda istediğiniz noktada, uygulamanızı uzaktan bildirimler için kaydedin. Gösterilen şekilde çağrı registerForRemoteNotifications :

hızlı

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

Objective-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 koduna erişin

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

Varsayılan olarak, FCM SDK uygulama başlatma sırasında istemci uygulaması örneği için bir kayıt jetonu oluşturur. APN'ler cihaz belirtecine benzer şekilde, bu belirteç uygulamanızın belirli bir örneğine hedefli bildirimler göndermenize olanak tanır.

FIRMessagingDelegate uygulama başlangıcında tipik olarak bir APN'ler cihaz belirteci FIRMessagingDelegate , FCM de FIRMessagingDelegate messaging:didReceiveRegistrationToken: yöntemiyle bir kayıt belirteci sağlar. FCM SDK, ilk uygulama başlatma 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 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 ayarlama

Mesajlaşma temsilci protokolünü ve set uygulamak, kayıt belirteçleri almak için FIRMessaging 'ın delegate çağırarak sonra özelliğini [FIRApp configure] . Örneğin, uygulama temsilciniz ileti temsilci protokolüne uyuyorsa, temsilciyi application:didFinishLaunchingWithOptions: için kendinize ayarlayabilirsiniz.

hızlı

Messaging.messaging().delegate = self

Objective-C

[FIRMessaging messaging].delegate = self;

Mevcut kayıt jetonu getiriliyor

Kayıt jetonları şu messaging:didReceiveRegistrationToken: yöntemi ile gönderilir messaging:didReceiveRegistrationToken: Bu yöntem genellikle uygulama başına başlangıç ​​belirteci ile bir kez çağrılır. Bu yöntem çağrıldığında, aşağıdakiler için ideal zamandır:

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

Jetonu exampleIDWithHandler: öğesini kullanarak doğrudan alabilirsiniz. Bu geri arama belirteci içeren bir InstanceIDResult sağlar. InstanceID alımı hiçbir şekilde başarısız olursa, boş olmayan bir hata sağlanır.

hızlı

InstanceID.instanceID().instanceID { (result, error) in
  if let error = error {
    print("Error fetching remote instance ID: \(error)")
  } else if let result = result {
    print("Remote instance ID token: \(result.token)")
    self.instanceIDTokenMessage.text  = "Remote InstanceID token: \(result.token)"
  }
}

Objective-C

[[FIRInstanceID instanceID] instanceIDWithHandler:^(FIRInstanceIDResult * _Nullable result,
                                                    NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"Error fetching remote instance ID: %@", error);
  } else {
    NSLog(@"Remote instance ID token: %@", result.token);
    NSString* message =
      [NSString stringWithFormat:@"Remote InstanceID token: %@", result.token];
    self.instanceIDTokenMessage.text = message;
  }
}];

Genellikle belirteç yerel olarak kullanılabilir, bu nedenle bu yöntem bir ağ bağlantısı açmaz. Bu yöntemi, jetonu depolamak yerine erişmek için istediğiniz zaman kullanabilirsiniz.

Simge yenilemeyi izleme

Simge her güncellendiğinde bildirim almak için, mesajlaşma temsilcisi protokolüne uygun bir temsilci sağlayın. Aşağıdaki örnekte temsilci kaydedilir ve uygun temsilci yöntemi eklenir:

hızlı

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
  print("Firebase registration token: \(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.
}

Objective-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 dinleyebilirsiniz NSNotification adlı kFIRMessagingRegistrationTokenRefreshNotification bir temsilci yöntemi temin ziyade. Jeton özelliği her zaman geçerli jeton değerine sahiptir.

Bir bildirim mesajı gönderin

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

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

  3. Bildirimler bestecisini açın ve Yeni bildirim'i seçin.

  4. Mesaj metnini girin.

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

  6. FCM kayıt jetonu ekle etiketli alana, bu kılavuzun önceki bir bölümünde edindiğiniz kayıt jetonunu girin.

  7. Test Et'i tıklayın

Test'i tıklattıktan sonra, hedeflenen istemci cihazı (uygulama arka planda olacak şekilde) bildirim merkezinde bildirim almalıdır.

Uygulamanıza mesaj teslimi hakkında bilgi için, iOS ve Android cihazlarda gönderilen ve açılan mesajların sayısını kaydeden FCM raporlama kontrol paneline ve Android uygulamaları için "gösterimler" (kullanıcılar tarafından görülen bildirimler) verilerine bakın.

Sonraki adımlar

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