registerUserNotificationSettings не увольняет делегатов и pu sh уведомление не работает мой проект - PullRequest
0 голосов
/ 30 марта 2020

Я сделал все процедуры, написанные в документации. Это мой код. Когда я добавил точку останова, этот делегат не был вызван.

private func pushNotificationHandler(_ application: UIApplication){
    FirebaseApp.configure()
    Messaging.messaging().delegate = self

    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 })
        application.registerForRemoteNotifications()

    } else {
        let settings: UIUserNotificationSettings =
            UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
        application.registerUserNotificationSettings(settings)
    }
    UIApplication.shared.applicationIconBadgeNumber = 0
}

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    // program never come here
    print(deviceToken)
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
    // program never come here
    print(error)
}

edit: протестировано в iphone 6, работа выполнена, но iPhone 11 pro max, iPhone XS Max и iPhone 7 - это та же проблема.

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Я решил проблему. Соединение телефона inte rnet не может подключиться к серверам Apple Pu sh. Через 10 часов я сменил DNS и решил проблему.

0 голосов
/ 30 марта 2020

Я думаю, вам нужно добавить

FirebaseApp.configure() 
Messaging.messaging().delegate = self

в Appdelegate-> didFinishLaunchingWithOptions

...