我有一个适用于iOS 10和iOS 9的应用程序,我必须管理远程推送通知:
对于iOS 10,我使用UNUserNotificationCenter
:
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (_ options: UNNotificationPresentationOptions) -> Void) {
print("Foreground push notification")
}
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
print("Background push notification")
}
对于iOS 9,我只能在应用程序处于前台时使用此方法管理到达的推送通知:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
print("arrived push notification in foreground for iOS 9")
}
但是当app在后台时,此方法不会执行,我无法管理新的推送通知。 你能救我吗?
答案 0 :(得分:0)
Apple已对这些通知设置了限制...当应用程序处于后台时,不能执行应用程序的块或功能...例如,任何第三方警报应用程序都会根据通知触发警报并且一旦点击通知应用程序启动并进入功能didreceivenotification ...而Android可以显示占用整个屏幕打盹或解除警报。当你在应用程序内部时,Apple会为你提供你想要做的所有权力,但是当在后台或应用程序中时,没有任何功能或块可以被执行。