在iOS上,我的应用程序如何获取手机在后台收到的通知数据?
在AppDelegate中有一种方法来获取所有通知数据的队列吗? (一旦用户打开应用程序)。
按照苹果文档:
当远程通知到达时,系统调用application:didReceiveRemoteNotification:fetchCompletionHandler:
方法。 通知通常表示新信息的可用性。 在您的应用程序委托方法中,您可能会开始从服务器下载新数据,以便您可以更新应用程序的数据结构。 您也可以使用通知来更新您的用户界面。
你必须启用remote notification background mode
,只有这样你才能回到上面提到的方法。
在你的app delegate
试试这个:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
对于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. } }
如果您想查找本地通知列表,该应用程序已经设置,请检查此解决scheme 。
您可以检查launchOptions字典,收到通知,当应用程序继续通过点击通知时,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //覆盖应用程序启动后的自定义点。 NSLog(@“Launch Options:%@”,launchOptions); 返回YES; }