选择在前台Swift 5[iOS]中向用户显示通知

选择在前台Swift 5[iOS]中向用户显示通知,ios,swift,push-notification,Ios,Swift,Push Notification,我的应用程序总是在后台和前台显示通知,但根据类型,它有时必须忽略通知 有两个功能用于前台通知: userNotificationCenter:它仅适用于Foregroud通知 func userNotificationCenter(center:unuservificationcenter,将显示通知:UNNotification,with completionHandler completionHandler:@escaping(UNNotificationPresentationOpti

我的应用程序总是在后台和前台显示通知,但根据类型,它有时必须忽略通知

有两个功能用于前台通知:

  • userNotificationCenter:它仅适用于Foregroud通知
func userNotificationCenter(center:unuservificationcenter,将显示通知:UNNotification,with completionHandler completionHandler:@escaping(UNNotificationPresentationOptions)->Void){
completionHandler([.alert、.badge、.sound])
}
  • 应用程序:当用户点击通知时,它会工作
func应用程序(application:UIApplication,DidReceiveMemoteNotification用户信息:[AnyHashable:Any],fetchCompletionHandler completionHandler:@escaping(UIBackgroundFetchResult)->Void){
……工作。。。
}
我需要防止(在前台)“userNotificationCenter”有时显示可见的通知,但总是运行“应用程序”(作业)


我如何直接调用“
应用程序”
”而不使用“
完成处理程序([.alert、.badge、.sound])

您的DidReceiveMotonification用例是错误的。在前台显示或不显示通知只是调用或不调用完成句柄的问题。在用户点击可见通知后,我使用DidReceiveEmoteNotification来做一些事情。有时,当用户在前台时,它会收到一个具有特定类型的通知,我想使用该通知不向用户显示该通知。此时,我只希望执行应用程序(DidReceiveEmoteNotify)绕过“completionHandler()”。我希望我已经解释过了。谢谢。当用户点击通知时,不会调用didReceiveRemoteNotification,请查看文档。