应用程序在前台时是否可以不触发本地通知?
Can a local notification not be triggered when app is in foreground?
我有一个基于日期触发的本地通知。触发此通知时,我会执行一些操作。
我现在的做法是这样的:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
switch response.actionIdentifier {
case UNNotificationDismissActionIdentifier:
print("Dismiss Action")
case UNNotificationDefaultActionIdentifier:
print("Default")
// Do Action Here
case "Snooze":
print("Snooze")
case "Delete":
print("Delete")
default:
print("Unknown action")
}
completionHandler()
}
当我对屏幕上显示的通知采取操作时调用此方法。
我想要的是,如果我在应用程序内,则不应出现通知并自动执行我的任务。
这可能吗?
现在我的任务只有在按下收到的通知时才会执行。如果我在应用程序中,我认为这没有多大意义。
实现 userNotificationCenter:willPresent
委托方法 UNUserNotificationCenter
并传递空数组作为不显示通知的选项。
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (_ options: UNNotificationPresentationOptions) -> Void) {
// Use this to avoid notification to appear on screen
completionHandler([])
// Use this to dispaly notification
completionHandler([UNNotificationPresentationOptions.alert, .sound, .badge])
}
我有一个基于日期触发的本地通知。触发此通知时,我会执行一些操作。
我现在的做法是这样的:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
switch response.actionIdentifier {
case UNNotificationDismissActionIdentifier:
print("Dismiss Action")
case UNNotificationDefaultActionIdentifier:
print("Default")
// Do Action Here
case "Snooze":
print("Snooze")
case "Delete":
print("Delete")
default:
print("Unknown action")
}
completionHandler()
}
当我对屏幕上显示的通知采取操作时调用此方法。
我想要的是,如果我在应用程序内,则不应出现通知并自动执行我的任务。
这可能吗?
现在我的任务只有在按下收到的通知时才会执行。如果我在应用程序中,我认为这没有多大意义。
实现 userNotificationCenter:willPresent
委托方法 UNUserNotificationCenter
并传递空数组作为不显示通知的选项。
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (_ options: UNNotificationPresentationOptions) -> Void) {
// Use this to avoid notification to appear on screen
completionHandler([])
// Use this to dispaly notification
completionHandler([UNNotificationPresentationOptions.alert, .sound, .badge])
}