UNNotificationServiceExtension-当应用程序处于活动状态时隐藏

时间:2019-02-10 09:08:47

标签: ios objective-c swift apple-push-notifications unnotificationserviceextension

我正在使用UNNotificationServiceExtension将图像添加到iOS APNS通知中。效果很好,除了即使应用程序处于活动状态(在前台)也显示通知。当应用程序处于活动状态时,我希望使用吐司处理通知,而不在活动应用程序的顶部显示标准的iOS通知。

问:是否可以从Notification Service Extension中检测应用程序的状态,并在应用程序处于活动状态时阻止显示通知?

2 个答案:

答案 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:)