Не удается получить push-уведомления swift 5 IOS 13 - PullRequest
0 голосов
/ 17 октября 2019

Я новичок в Push-уведомлениях. Я пытался отправить некоторые уведомления из Firebase на iPhone с iOS13, и после некоторых попыток я получил уведомления.

Через час я попытался отправить другое уведомление от Firebase, но мой iPhone ничего не отображал. Почему это случилось? Я ничего не менял.

import UIKit
import CoreData
import Firebase
import UserNotifications

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate, MessagingDelegate {

var window: UIWindow?
let gcmMessageIDKey = "gcm.message_id"

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    FirebaseApp.configure()

    let navController = UINavigationController(rootViewController: MainVC())

    window = UIWindow()
    window?.rootViewController = navController

    attemptingToRegisterForNotifications(application: application)

    return true
}

func attemptingToRegisterForNotifications(application: UIApplication) {
    UNUserNotificationCenter.current().delegate = self

    let options: UNAuthorizationOptions = [.alert, .badge, .sound]
    UNUserNotificationCenter.current().requestAuthorization(options: options) { (authorized, error) in
        if authorized {
            print("Authorized")
        }
    }
    application.registerForRemoteNotifications()
    Messaging.messaging().delegate = self

    let token = Messaging.messaging().fcmToken
    print("FCM token: \(token ?? "")")
}

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    print("Registered for remote notifications with token:", deviceToken)
    Messaging.messaging().apnsToken = deviceToken
}

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

func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
    print("Remote Message ", remoteMessage.appData)
}

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    let userInfo = notification.request.content.userInfo

    if let messageID = userInfo[gcmMessageIDKey] {
      print("Message ID: \(messageID)")
    }

    print(userInfo)
    completionHandler(.alert)
}

func userNotificationCenter(_ center: UNUserNotificationCenter,
                            didReceive response: UNNotificationResponse,
                            withCompletionHandler completionHandler: @escaping () -> Void) {
  let userInfo = response.notification.request.content.userInfo
  if let messageID = userInfo[gcmMessageIDKey] {
    print("Message ID: \(messageID)")
  }

  print(userInfo)
  completionHandler()
}

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
  if let messageID = userInfo[gcmMessageIDKey] {
    print("Message ID: \(messageID)")
  }

  print(userInfo)
}

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
                 fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
  if let messageID = userInfo[gcmMessageIDKey] {
    print("Message ID: \(messageID)")
  }

  print(userInfo)
  completionHandler(UIBackgroundFetchResult.newData)
}

1 Ответ

0 голосов
/ 17 октября 2019

Попробуйте переустановить приложение и попробуйте поместить ваше приложение в foreground или background . Используете ли вы веб-интерфейс Firebase для отправки уведомлений?

...