Apple Push Notification 设置 Remote Notifications 方法覆盖其他方法
Apple Push Notification setting up Remote Notifications method overrides other methods
我已经使用
方法为 Remote Notifications
正确设置了我的应用程序
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)
现在每次应用收到 Apple Push Notification
.
时它都会正确处理它
但我的问题是现在所有实例都在调用此方法。
didFinishLaunchingWithOptions
好像不叫了?或者 launchOptions
是空的?
基本上我使用 didReceiveRemoteNotification
作为一个捕获所有来处理任何传入的通知,这是我的预期目的,但是当我点击通知本身时,它再次触发 didReceiveRemoteNotification
。因此处理通知两次,这是我不想要的。
这就是我希望我的应用程序处理通知的方式:
- 任何时候收到通知,想在后台自动处理通知
- 当用户点击来自外部应用程序的通知时,运行 与
didReceiveRemoteNotification
不同的方法
- 当用户在应用内时,运行 一种不同于其他方法的方法
苹果不允许你想要的。推送通知按以下方式工作
1) 当应用程序不是运行,并且用户点击通知时,应用程序被启动并且通知的有效载荷被加载到函数didFinishLaunchingWithOptions.
2) 当应用程序在后台 运行 并且用户单击通知时,应用程序变为活动状态并调用函数 didReceiveRemoteNotification。现在此函数包含通知的有效负载。
3) 当应用程序 运行 并调用推送通知时,函数 didReceiveRemoteNotification 被调用,该函数包含通知的有效负载。
4) 当应用程序 运行 在后台或处于非活动状态并且收到通知时,在用户单击通知之前无法对通知执行任何操作
我已经使用
方法为Remote Notifications
正确设置了我的应用程序
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)
现在每次应用收到 Apple Push Notification
.
但我的问题是现在所有实例都在调用此方法。
didFinishLaunchingWithOptions
好像不叫了?或者 launchOptions
是空的?
基本上我使用 didReceiveRemoteNotification
作为一个捕获所有来处理任何传入的通知,这是我的预期目的,但是当我点击通知本身时,它再次触发 didReceiveRemoteNotification
。因此处理通知两次,这是我不想要的。
这就是我希望我的应用程序处理通知的方式:
- 任何时候收到通知,想在后台自动处理通知
- 当用户点击来自外部应用程序的通知时,运行 与
didReceiveRemoteNotification
不同的方法
- 当用户在应用内时,运行 一种不同于其他方法的方法
苹果不允许你想要的。推送通知按以下方式工作
1) 当应用程序不是运行,并且用户点击通知时,应用程序被启动并且通知的有效载荷被加载到函数didFinishLaunchingWithOptions.
2) 当应用程序在后台 运行 并且用户单击通知时,应用程序变为活动状态并调用函数 didReceiveRemoteNotification。现在此函数包含通知的有效负载。
3) 当应用程序 运行 并调用推送通知时,函数 didReceiveRemoteNotification 被调用,该函数包含通知的有效负载。
4) 当应用程序 运行 在后台或处于非活动状态并且收到通知时,在用户单击通知之前无法对通知执行任何操作