在 iOS 上,我的应用如何获取手机在后台时收到的通知数据?
Posted
技术标签:
【中文标题】在 iOS 上,我的应用如何获取手机在后台时收到的通知数据?【英文标题】:On iOS, how can my app get the notification data that it received while the phone was in the background? 【发布时间】:2015-08-06 07:14:54 【问题描述】:AppDelegate 中有没有办法获取所有通知数据的队列? (一旦用户打开应用程序)。
【问题讨论】:
【参考方案1】:根据苹果文档:
当远程通知到达时,系统调用application:didReceiveRemoteNotification:fetchCompletionHandler:
方法。通知通常表明新信息的可用性。在您的应用程序委托方法中,您可能会开始从服务器下载新数据,以便您可以更新应用程序的数据结构。您也可以使用通知来更新您的用户界面。
您必须启用remote notification background mode
,然后您才会收到上述方法的回调。
【讨论】:
【参考方案2】:在您的 app delegate
中试试这个:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
【讨论】:
【参考方案3】:对于UILocalNotification
,您可以通过在AppDelegate
中调用以下函数来获取收到的通知:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
UIApplicationState state = [application applicationState];
if (state == UIApplicationStateInactive)
// Application was in the background when notification was delivered.
如果您想查找该应用已设置的本地通知列表,请查看此solution。
【讨论】:
【参考方案4】:您可以检查launchOptions Dictionary,收到的通知,当应用程序恢复点击通知时,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions // 应用程序启动后自定义的覆盖点。 NSLog(@"启动选项:%@",launchOptions); 返回是;【讨论】:
以上是关于在 iOS 上,我的应用如何获取手机在后台时收到的通知数据?的主要内容,如果未能解决你的问题,请参考以下文章