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")
}
}
}
このコードから、常に「Scheduled Notification」が出力されますが、通知がトリガーされるはずのときにトリガーされません。これに対する修正を見つけることができませんでした。