import UserNotifications
จากนั้นไปที่ตัวแก้ไขโครงการสำหรับเป้าหมายของคุณและในแท็บทั่วไปมองหาส่วนกรอบงานและไลบรารีที่เชื่อมโยง
คลิก + แล้วเลือก 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])
}
ใช้วิธีการมอบหมายการแจ้งเตือน
// 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)")
}
สำหรับการรับการแจ้งเตือนแบบพุช
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
completionHandler(UIBackgroundFetchResult.noData)
}
การตั้งค่าการแจ้งเตือนแบบพุชกำลังเปิดใช้งานคุณสมบัติภายใน Xcode 8 สำหรับแอปของคุณ เพียงแค่ไปที่การแก้ไขโครงการสำหรับเป้าหมายของคุณและจากนั้นคลิกที่ความสามารถของแท็บ มองหาการแจ้งเตือนผลักดันและสลับค่าเป็นON
ตรวจสอบลิงค์ด้านล่างสำหรับวิธีการมอบหมายการแจ้งเตือนเพิ่มเติม
การจัดการการแจ้งเตือนในพื้นที่และระยะไกลUIApplicationDelegate - การจัดการการแจ้งเตือนภายในและระยะไกล
https://developer.apple.com/reference/uikit/uiapplicationdelegate