swift 发送本地通知设置时间和内容
要在Swift中发送本地通知,您需要使用UNUserNotificationCenter类。下面是一个示例代码,可以设置通知的时间和内容:
import UIKit
import UserNotifications
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 请求用户授权
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
if granted {
print("用户授权了通知")
} else {
print("用户拒绝了通知")
}
}
}
@IBAction func scheduleNotificationButtonTapped(_ sender: UIButton) {
// 创建通知内容
let content = UNMutableNotificationContent()
content.title = "本地通知"
content.body = "这是一条本地通知的内容"
content.sound = UNNotificationSound.default
// 创建通知触发器,设置触发时间
let date = Date().addingTimeInterval(10) // 10秒后触发通知
let triggerDate = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date)
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: false)
// 创建通知请求
let identifier = "LocalNotification"
let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
// 添加通知请求到通知中心
UNUserNotificationCenter.current().add(request) { (error) in
if let error = error {
print("添加通知请求失败:\(error.localizedDescription)")
} else {
print("通知请求已添加到通知中心")
}
}
}
}
在上述代码中,我们首先在viewDidLoad方法中请求用户授权,以便发送通知。然后,当用户点击“发送通知”按钮时,我们创建一个UNMutableNotificationContent对象,设置通知的标题、内容和声音。接下来,我们使用UNCalendarNotificationTrigger来设置通知的触发时间。在这个例子中,我们设置通知在当前时间的10秒后触发。
最后,我们创建一个UNNotificationRequest对象,将通知内容和触发器添加进去。然后,我们调用UNUserNotificationCenter.current().add(request)方法将通知请求添加到通知中心。
请注意,您还需要在项目的Info.plist文件中添加以下内容,以允许发送通知:
<key>NSMicrophoneUsageDescription</key>
<string>需要通知权限</string>
<key>NSLocalNetworkUsageDescription</key>
<string>需要通知权限</string>
<key>NSUserNotificationEnabled</key>
<string>YES</string>
希望这可以帮助到你
原文地址: http://www.cveoy.top/t/topic/iYAY 著作权归作者所有。请勿转载和采集!