我一直在为iOS 10中的应用程序设置本地通知,但在模拟器中进行测试时,我发现通知会成功安排,但在计划安排的时间内实际上不会出现。这是我一直在使用的代码:
let UNcenter = UNUserNotificationCenter.current()
UNcenter.requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in
// Enable or disable features based on authorization
if granted == true {
self.testNotification()
}
}
然后它运行此代码(假设日期/时间是将来):
func testNotification () {
let date = NSDateComponents()
date.hour = 16
date.minute = 06
date.second = 00
date.day = 26
date.month = 1
date.year = 2017
let trigger = UNCalendarNotificationTrigger(dateMatching: date as DateComponents, repeats: false)
let content = UNMutableNotificationContent()
content.title = "TestTitle"
content.body = "TestBody"
content.subtitle = "TestSubtitle"
let request = UNNotificationRequest(identifier: "TestID", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) {(error) in
if let error = error {
print("error: \(error)")
} else {
print("Scheduled Notification")
}
}
}
从此代码中,它将始终打印“预定通知”,但是当通知应该被触发时,它永远不会触发。我一直无法找到任何解决办法。
答案 0 :(得分:0)
这是几个步骤。
确保您具有权限。如果不是,请使用 UNUserNotificationCenter.current()。requestAuthorization 来获取。或者,如果您想显示多次弹出请求,请按照答案进行操作。
如果要显示通知前景,则必须将 UNUserNotificationCenterDelegate 分配给某个地方。
此answer可能会有帮助。