我使用单一通知,这是我的代码:
这是用于注册本地通知>>>
这是用于注册本地通知>>>
func registerLocal() { let center = UNUserNotificationCenter.current() center.requestAuthorization(options: [.alert,.badge,.sound]) { (granted,error) in if granted { print("Yay!") } else { print("D'oh") } } }
func scheduleLocal() { registerCategories() let center = UNUserNotificationCenter.current() // not required,but useful for testing! center.removeAllPendingNotificationRequests() let content = UNMutableNotificationContent() content.title = "good morning" content.body = "ttt123" content.categoryIdentifier = "alarm" content.userInfo = ["customData": "fizzbuzz"] content.sound = UNNotificationSound.default() var dateComponents = DateComponents() dateComponents.hour = 23 dateComponents.minute = 18 let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents,repeats: true) let request = UNNotificationRequest(identifier: UUID().uuidString,content: content,trigger: trigger) center.add(request) } func registerCategories() { let center = UNUserNotificationCenter.current() center.delegate = self let show = UNNotificationAction(identifier: "show",title: "Tell me more…",options: .foreground) let category = UNNotificationCategory(identifier: "alarm",actions: [show],intentIdentifiers: []) center.setNotificationCategories([category]) } func userNotificationCenter(_ center: UNUserNotificationCenter,didReceive response: UNNotificationResponse,withCompletionHandler completionHandler: @escaping () -> Void) { // pull out the buried userInfo dictionary let userInfo = response.notification.request.content.userInfo if let customData = userInfo["customData"] as? String { print("Custom data received: \(customData)") switch response.actionIdentifier { case UNNotificationDefaultActionIdentifier: // the user swiped to unlock; do nothing print("Default identifier") case "show": print("Show more information…") break default: break } } // you need to call the completion handler when you're done completionHandler() }
您可以使用不同的dateComponents多次调用func scheduleLocal()来安排在不同的日期.或者,您可以将一组日期传递给此函数并运行循环以根据这些日期安排通知.
只需确保您在UNNotificationRequest(identifier:,content:,trigger :)函数中传递的标识符对于每个通知都是不同的.
希望这可以帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。