Попытка настроить push-уведомление для iOS10. если бы он работал ранее для версий ниже 10.
Прочтите несколько руководств, моя настройка выглядит так:
// Register for the defined notifications
if #available(iOS 10.0, *) {
let center = UNUserNotificationCenter.current()
center.delegate = UIApplication.shared.delegate as! AppDelegate
center.requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in
if error == nil {
UIApplication.shared.registerForRemoteNotifications()
}
}
} else {
// Fallback on earlier versions
let notificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: [autoCancelCategory])
UIApplication.shared.registerUserNotificationSettings(notificationSettings)
UIApplication.shared.registerForRemoteNotifications()
}
Это называется login ^ в одном из моих контроллеров представления.
И теперь в AppDelegate
он соответствует UNUserNotificationCenterDelegate
, у меня есть следующие методы:
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
print("Got a push!")
}
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
print("Got a push!")
}
И у меня также есть:
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
let settings = UserDefaults.standard
settings.setValue(deviceToken, forKey: "deviceToken")
}
Маркер устройства загружается на сервер как Data
, и это отлично работает для предыдущих версий.
Я проверил, что токен на сервере соответствует таковому на телефоне.
Я включил push-уведомления для всех целей в Capabilities
, я также отметил Add the push Notifications entitlement to your entitlements file
.
Не получаю ничего вообще, хотя на push.
Любые идеи, что я могу делать неправильно здесь? Любые указатели были бы действительно оценены!
Спасибо!
EDIT: Я также заметил, что push-уведомления не работают в iOS9.