要在Swift中创建多个不同时间发送的通知,您可以使用UNUserNotificationCenter类。以下是一个示例代码,展示了如何创建并安排多个不同时间的通知:

import UserNotifications

// 创建通知内容
let content1 = UNMutableNotificationContent()
content1.title = '通知1'
content1.body = '这是第一个通知'
let trigger1 = UNTimeIntervalNotificationTrigger(timeInterval: 60, repeats: false)
let request1 = UNNotificationRequest(identifier: 'notification1', content: content1, trigger: trigger1)

let content2 = UNMutableNotificationContent()
content2.title = '通知2'
content2.body = '这是第二个通知'
let trigger2 = UNTimeIntervalNotificationTrigger(timeInterval: 120, repeats: false)
let request2 = UNNotificationRequest(identifier: 'notification2', content: content2, trigger: trigger2)

let content3 = UNMutableNotificationContent()
content3.title = '通知3'
content3.body = '这是第三个通知'
let trigger3 = UNTimeIntervalNotificationTrigger(timeInterval: 180, repeats: false)
let request3 = UNNotificationRequest(identifier: 'notification3', content: content3, trigger: trigger3)

// 将通知请求添加到通知中心
let center = UNUserNotificationCenter.current()
center.add(request1) { (error) in
    if let error = error {
        print('添加通知1失败:' + error.localizedDescription)
    }
}

center.add(request2) { (error) in
    if let error = error {
        print('添加通知2失败:' + error.localizedDescription)
    }
}

center.add(request3) { (error) in
    if let error = error {
        print('添加通知3失败:' + error.localizedDescription)
    }
}

在上面的示例中,我们使用UNTimeIntervalNotificationTrigger触发器来指定通知的发送时间。timeInterval参数表示通知将在多长时间后发送,repeats参数表示通知是否重复发送。然后,我们使用UNNotificationRequest请求对象将通知内容和触发器结合起来,并将其添加到通知中心中。如果添加通知失败,我们可以通过错误回调中的localizedDescription属性来获取错误信息。

请注意,要使用通知,您需要在应用程序中请求用户授权。您可以在应用程序委托中的application(_:didFinishLaunchingWithOptions:)方法中使用以下代码请求授权:

let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
    if let error = error {
        print('请求通知授权失败:' + error.localizedDescription)
    }
}
Swift 多个不同时间发送通知教程 - 详细代码示例

原文地址: https://www.cveoy.top/t/topic/qECp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录