Пожалуйста, проверьте код как это выглядит
сначала импортируйте локальное уведомление
import UserNotifications
, затем создайте метод
func settingPushNotification() {
let app = UIApplication.shared
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 })
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
app.registerUserNotificationSettings(settings)
}
app.registerForRemoteNotifications()
}
, вы можете вызвать этот метод либо в appdelegate
или viewcontroller
таким образом.
self.settingPushNotification()
вам необходимо добавить методы делегата
func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
let tokenParts = deviceToken.map { data in String(format: "%02.2hhx", data) }
let token = tokenParts.joined()
if !token.isEmpty {
let userDefaults = UserDefaults.standard
userDefaults.set(token, forKey: Strings.DeviceToken.rawValue)
}
print("Device Token: \(token)")
}
func application(
_ application: UIApplication,
didFailToRegisterForRemoteNotificationsWithError error: Error) {
print("Failed to register: \(error)")
}
Убедитесь, что вы добавили push-уведомление в подписи и возможностях.
Таким образом вы можете получить токен устройства APNS.