import UserNotifications
Tiếp theo, đi tới trình chỉnh sửa dự án cho mục tiêu của bạn và trong tab Chung, tìm phần Thư viện và Khung được Liên kết.
Nhấp vào + và chọn UserNotifications.framework:
// iOS 12 support
if #available(iOS 12, *) {
UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound, .provisional, .providesAppNotificationSettings, .criticalAlert]){ (granted, error) in }
application.registerForRemoteNotifications()
}
// iOS 10 support
if #available(iOS 10, *) {
UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]){ (granted, error) in }
application.registerForRemoteNotifications()
}
// iOS 9 support
else if #available(iOS 9, *) {
UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil))
UIApplication.shared.registerForRemoteNotifications()
}
// iOS 8 support
else if #available(iOS 8, *) {
UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil))
UIApplication.shared.registerForRemoteNotifications()
}
// iOS 7 support
else {
application.registerForRemoteNotifications(matching: [.badge, .sound, .alert])
}
Sử dụng phương pháp ủy quyền thông báo
// Called when APNs has assigned the device a unique token
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
// Convert token to string
let deviceTokenString = deviceToken.reduce("", {$0 + String(format: "%02X", $1)})
print("APNs device token: \(deviceTokenString)")
}
// Called when APNs failed to register the device for push notifications
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
// Print the error to console (you should alert the user that registration failed)
print("APNs registration failed: \(error)")
}
Để nhận thông báo đẩy
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
completionHandler(UIBackgroundFetchResult.noData)
}
Thiết lập thông báo đẩy đang bật tính năng trong Xcode 8 cho ứng dụng của bạn. Chỉ cần đi tới trình chỉnh sửa dự án cho mục tiêu của bạn và sau đó nhấp vào tab Khả năng . Tìm Thông báo đẩy và chuyển giá trị của nó thành BẬT .
Kiểm tra liên kết bên dưới để biết thêm các phương pháp ủy quyền Thông báo
Xử lý thông báo cục bộ và từ xa UIApplicationDelegate - Xử lý thông báo cục bộ và từ xa
https://developer.apple.com/reference/uikit/uiapplicationdelegate