Mon problème n'est pas résolu après que je l'ai essayé beaucoup de questions qui pourraient avoir la solution à ce problème:didRefreshRegistrationToken n'est pas appelé si l'utilisateur Ne laissez pas les notifications rapides
Je veux FCM Token
. En AppDelegate.swift
j'ai importé
import UserNotifications
import Firebase
import FirebaseInstanceID
import FirebaseMessaging
Après que je l'ai étendu avec UNUserNotificationCenterDelegate, MessagingDelegate
puis dans didFinishLaunchingWithOptions
J'ai ajouté:
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 })
// For iOS 10 data message (sent via FCM
Messaging.messaging().delegate = self
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
FirebaseApp.configure()
Et après que je l'ai ajouté ces quatre fonctions:
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Messaging.messaging().apnsToken = deviceToken as Data
}
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping() -> Void) {
print("Here")
}
func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
print("Received data message: \(remoteMessage.appData)")
}
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
print("Firebase registration token: \(fcmToken)")
}
Maintenant, le problème est lorsque j'exécute l'application, il montre l'alerte qui demande des autorisations pour l'envoi de notification. L'autoriser ou l'interdire n'est pas mon souci J'ai mis en application MessagingDelegate
la méthode didRefreshRegistrationToken
ainsi il devrait être appelé, mais il n'appelle pas cette méthode. Alors, je manque quelque chose?