iOS'ta Firebase kullanarak Cloud Messaging yapmak!

2 hafta önce , Okuma süresi 3 dakika.

Firebase'de bulut mesajlaşma (Cloud Messaging) nasıl çalışır?
iOS'ta Firebase  kullanarak Cloud Messaging yapmak!

Uygulama, bir cihaz belirteci için APN'ler ister. Ardından bu cihaz tokeni FCM'ye (Firebase Cloud Messaging) gönderir ve karşılığında FCM cihaz tokenini alır. Artık bu simge, bildirim göndermek için kullanılacak tüm bu benzersiz cihaz belirteçlerinin kaydını tutan sunucu / bulut işlevinize gönderilebilir. Dolayısıyla, sunucunuz veya bulut işleviniz belirli bir hedefe bildirim göndermek istediğinde, cihazı benzersiz şekilde tanımlayan bu FCM cihaz belirteçlerini kullanır. FCM, APNS Aygıt belirteci ile FCM belirteci arasındaki eşleştirmesini kontrol eder ve aygıt belirtecini belirler. Cihaz belirteci ile birlikte bildirim bilgilerini kullanıcıya bildirimi teslim eden APNS'ye gönderir.

İşte adımlar:

1. Buradaki talimatları izleyerek temel projeyi firebase ile kurun

Firebase'i projenize ekleme

2. Apple geliştirici portalında anında bildirim ayarlayın

Push bildirimi iki şekilde ayarlanabilir

  • APNs Sertifikaları - Bunu yapmanın eski yolu budur. Bunun hakkında konuşmayacağım.
  • APNs Kimlik Doğrulama Anahtarı - Apple'ın yeni ayar yöntemiyle, uygulamalarınızdan herhangi biri tarafından kullanılabilen bir anahtar oluşturarak anında bildirim göndermek çok daha kolay hale geldi .

Öyleyse başlayalım. Apple geliştirici portalınızda oturum açın ve Sertifikalar, Tanımlayıcılar ve Profiller'i seçin , ardından sol taraftaki bölmede Anahtarları bulun . Sol üst köşede, yeni bir anahtar oluşturmak için + düğmesine tıklayın.

Anahtara Test Bildirim Anahtarı gibi bir ad verin . Altında Key seçeneğini Apple Push Bildirim servisi (APN) .

Gönderi için resim

Anahtarı oluşturduktan sonra, dosyayı indirin, bu AuthKey_3N9MXTE249.p8 gibi bir ad verilecektir. Bu dosyayı tekrar indirmeyeceğiniz için güvenli bir yerde saklayın. Kod deponuzu kontrol etmek iyi bir uygulamadır.

3. Firebase konsolu kurulumu

Proje ayarlarına gidin ve Bulut Mesajlaşma'ya tıklayın

Gönderi için resim

APNs Kimlik Doğrulama Anahtarı bölümündeki yükle düğmesine tıklayın

Gönderi için resim

Bu size dosyayı yüklemek için bir pencere açacaktır

Gönderi için resim

Kimlik doğrulama dosyasını indirdiğiniz konuma göz atın. 3N9MXTE249 dosya adının bir parçası olan Anahtar Kimliği . Ekip Kimliği Membership Details sayfasında bulunabilir.

4. Uygulamayı bildirim için yapılandırma

  • Uygulama yeteneklerinde push bildirimini etkinleştirin
  • Pod dosyanızı bunun gibi bulut mesajlaşma desteğini içerecek şekilde güncelleyin
pod ‘Firebase/Messaging’
  • Terminaldeki uygulama / proje dizininde pod yüklemeyi çalıştırın.
  • Kullanıcı bildirim izinlerini sorma - Uygulama temsilci dosyanızı açın ve uygulama altında (_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool yöntemi aşağıdaki kodu ekleyin.
    // For iOS 10 display notification (sent via APNS)
            UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
          let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
          UNUserNotificationCenter.current().requestAuthorization(
            options: authOptions,
            completionHandler: {_, _ in })
        }
        application.registerForRemoteNotifications()

Bu, kullanıcıdan bildirim izni istediğimizden emin olmanızı sağlayacaktır.

Hem ön planda hem de arka planda bildirim almak için lütfen Uygulama Temsilcinizin UNUserNotificationCenterDelegate ile uyumlu olduğundan emin olun ve aşağıdaki yöntemi uygulayın.

 

extension AppDelegate:UNUserNotificationCenterDelegate {
    //This method is to handle a notification that arrived while the app was running in the foreground
    func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        let userInfo = notification.request.content.userInfo

        // Print message ID.
        if let messageID = userInfo[gcmMessageIDKey] {
            print("Message ID: (messageID)")
        }
        // Print full message.
        print(userInfo)
        // Change this to your preferred presentation option
        completionHandler([.alert])
    }
    
    //This method is to handle a notification that arrived while the app was not in foreground
    func userNotificationCenter(_ center: UNUserNotificationCenter,
                                didReceive response: UNNotificationResponse,
                                withCompletionHandler completionHandler: @escaping () -> Void) {
        
      let userInfo = response.notification.request.content.userInfo
      // Print message ID.
      if let messageID = userInfo[gcmMessageIDKey] {
        print("Message ID: (messageID)")
      }

      // Print full message.
      print(userInfo)
      completionHandler()
    }
}
  • FCM tokene erişin - Kodunuzdaki FirebaseApp.configure () belirtecine bunun gibi FCM token, eriştikten hemen sonra;
FirebaseApp.configure()
InstanceID.instanceID().instanceID { (result, error) in
          if let error = error {
            print("Error fetching FCM token: (error)")
          } else if let result = result {
            print("FCM token: (result.token)")
          }
        }

Yukarıda alınan jeton, FCM aracılığıyla push bildirimini başlatacak olan sunucunuza / hizmetinize rapor edilebilir.

5. Bir test bildirimi gönderin

  • Uygulamayı bir cihazda çalıştırın ve yukarıda açıklanan yöntemde FCM belirtecini kontrol edin. Jetonu kopyalayın.
  • Firebase bulut mesajlaşma konsolunu açın

Gönderi için resimGönderi için resim

Tıklayın Gönder testi mesajının yukarıdaki adımda kopyaladığınız kodu girin nerede aşağıda gösterildiği gibi bir pencere açmak.

 Gönderi için resim

Test'e tıklayın ve cihazınız bildirimi alacaktır.

Referanslar

İOS'ta bir Firebase Cloud Messaging istemci uygulaması kurun

#ios