当应用程序被用户强制退出时处理推送通知 iOS(替代方案?)
Handling push notifications iOS when app is force-quit by user (Alternatives?)
我在 iOS 中遇到推送通知问题,情况与 this and and another one 类似。
此外,this post 恢复所有可能的情况。
就我而言:
- 应用不是 运行
- 可用内容:1
- UIBackgroundModes 包含 'remote-notifications' 和 'fetch'
如果用户强制退出应用程序并收到推送通知,则它可以从警报或图标中打开应用程序。
当用户点击通知时,应用程序将被打开并执行以下方法:
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Handle for notifications when app is closed
if (launchOptions) {
NSDictionary *userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];
if (apsInfo) {
// handle notification
}
}
到这里为止没问题,我有有效负载来处理该信息(例如从服务器获取新数据)。
但是,如果用户从图标打开应用程序,我没有任何方法来处理有效载荷(根据文档 here,虽然执行了 didFinishLaunchingWithOptions,但我没有 aps 信息) .
那么,问题来了,有什么办法可以解决吗?
例如,我用 WhatsApp 进行了测试,他们处理了这种情况,(可能他们使用 VOIP 通知而不是远程通知)
此致
您永远不应该假定状态在发送通知的时间和用户启动应用的时间之间保持一致。甚至,它也不是同一个设备。我会经常在我的 phone 上收到 "Hey! Do something!" 通知,如果我的 iPad 方便,请在我漂亮的大 iPad 屏幕上回复它。
相反,您应该往返服务器并在应用启动或激活时获取该用户的最新状态。
我在 iOS 中遇到推送通知问题,情况与 this and
此外,this post 恢复所有可能的情况。 就我而言:
- 应用不是 运行
- 可用内容:1
- UIBackgroundModes 包含 'remote-notifications' 和 'fetch'
如果用户强制退出应用程序并收到推送通知,则它可以从警报或图标中打开应用程序。 当用户点击通知时,应用程序将被打开并执行以下方法:
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Handle for notifications when app is closed
if (launchOptions) {
NSDictionary *userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];
if (apsInfo) {
// handle notification
}
}
到这里为止没问题,我有有效负载来处理该信息(例如从服务器获取新数据)。
但是,如果用户从图标打开应用程序,我没有任何方法来处理有效载荷(根据文档 here,虽然执行了 didFinishLaunchingWithOptions,但我没有 aps 信息) .
那么,问题来了,有什么办法可以解决吗? 例如,我用 WhatsApp 进行了测试,他们处理了这种情况,(可能他们使用 VOIP 通知而不是远程通知)
此致
您永远不应该假定状态在发送通知的时间和用户启动应用的时间之间保持一致。甚至,它也不是同一个设备。我会经常在我的 phone 上收到 "Hey! Do something!" 通知,如果我的 iPad 方便,请在我漂亮的大 iPad 屏幕上回复它。
相反,您应该往返服务器并在应用启动或激活时获取该用户的最新状态。