我有一个同时适用于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在后台时,这个方法不会执行,我也不能管理新的推送通知。你能帮帮我吗?
发布于 2016-11-21 14:20:57
苹果已经对这些通知设置了限制...当应用程序在后台时,应用程序的任何块或函数都不能执行...例如,任何第三方警报应用程序都会基于通知触发警报,一旦点击通知,应用程序就会启动,并进入功能didreceivenotification...而Android可以显示,占据整个屏幕来打瞌睡或解除警报。当你在你的应用程序内部时,苹果给了你所有你想做的事情,但当你在后台或应用程序被杀死时,没有函数或块可以执行。
https://stackoverflow.com/questions/40713660
复制相似问题