从后台iOS唤醒应用程序

时间:2015-02-15 13:45:48

标签: ios8 push-notification background-process uilocalnotification

我使用静音通知从后台唤醒我的应用。当我关闭我的应用程序时一切正常,但当我终止它(向上滑动)它停止工作。我可以感觉到(振动)无声通知已经发出但我的应用程序没有处理它。我做了一个本地通知,当无声通知到达时应该触发。在我的.plist中,我启用了远程通知和后台提取。在AppDelegate.m中我有这个:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

{

    UILocalNotification *notification_ = [[UILocalNotification alloc]init];

    notification_.alertBody = [NSString stringWithFormat:@"Psst!"];

    notification_.soundName = UILocalNotificationDefaultSoundName;

    [notification_ setFireDate:[NSDate dateWithTimeIntervalSinceNow:2]];

    [notification_ setTimeZone:[NSTimeZone defaultTimeZone]];

    [application setScheduledLocalNotifications:[NSArray arrayWithObject:notification_]];

}

1 个答案:

答案 0 :(得分:1)

application:didReceiveRemoteNotification仅在您的应用实际在前台和后台运行时执行。这就是为什么在终止应用程序后不会调用上述方法的原因。

如果您的应用未运行且已从通知中打开,则应在application:didFinishLaunchingWithOptions处理通知。 launchOptions字典应包含引用通知有效负载的密钥UIApplicationLaunchOptionsRemoteNotificationKey

有关详细信息,请查看Local and Remote Notification Programming Guide

的“处理本地和远程通知”部分