Чтобы опробовать Push-уведомления с Firebase, я следую этому примеру: https://github.com/firebase/quickstart-ios/blob/dc2cd2db6e82e5c475fa3f0efe75df8b54f04544/messaging/MessagingExampleSwift/AppDelegate.swift#L40-L55
Я мог бы заставить его работать до определенной точки.
Вот соответствующий код Ihave:
......
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
......
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_, _ in })
application.registerForRemoteNotifications()
FirebaseApp.configure()
......
return true
}
......
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo
// Print message ID.
print(#function)
if let messageID = userInfo[gcmMessageIDKey] {
print("Message ID: \(messageID)")
}
// Print full message.
print(userInfo)
completionHandler()
}
......
Когда я пытаюсь проверить это, вызывается только функция userNotificationCenter: didReceive: withCompletionHandler () (в списке функций, представленном в примере).Также следует заметить, что я вижу это, глядя на консоль отладчика, и на устройстве ничего не происходит.Я полагаю, что так и должно быть (так что все в порядке), но у меня есть вопрос к любому, кто может ответить.
Как мне использовать завершениеHandler () ?Я полагаю, поскольку это параметр, я могу использовать его довольно свободно, но когда я ищу пример кода в сети, я вижу только то, что он объявлен в списке параметров или назван так, как в примереЯ работаю с ним, но никогда не вижу его определенного.
Есть ли что-то, на что я должен обратить внимание или конкретный пример того, как его использовать?
Для информации, я использую XcodeВерсия 10.1, iOS 12.1 и Swift 4.2.