我正在使用UNNotificationServiceExtension
将图像添加到iOS APNS通知中。效果很好,除了即使应用程序处于活动状态(在前台)也显示通知。当应用程序处于活动状态时,我希望使用吐司处理通知,而不在活动应用程序的顶部显示标准的iOS通知。
问:是否可以从Notification Service Extension中检测应用程序的状态,并在应用程序处于活动状态时阻止显示通知?
答案 0 :(得分:1)
默认情况下,基于Apple的documentation通知不会显示。
如果通知到达时您的应用程序处于前台,则共享用户通知中心将调用此方法将通知直接传递到您的应用程序。如果实现此方法,则可以采取任何必要的操作来处理通知并更新您的应用。完成后,调用完成处理器块,并指定您希望系统如何警告用户(如果有的话)。
是否使用通知服务扩展名无关紧要-通知始终始终由应用程序处理,不过该扩展名可用于首先对其进行修改。
尝试使用此代码(实际上,由于在应用程序处于活动状态时会显示通知,因此您可能已在某处实现了此方法-如果不需要它,则可以将其删除)。
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
// Perform additional handling of the notification, if needed.
completionHandler([])
}
答案 1 :(得分:0)
在provider: 'in_memory'
中调用completionHandler(.newData)
会导致在应用内显示横幅。您可以摆脱它。
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)