应用未运行或终止时的通知

时间:2016-04-07 12:07:13

标签: ios objective-c uilocalnotification background-task

我正在使用应用程序,其中当任何其他用户在app中发布数据时,我正在使用本地通知。当我的应用程序运行时,它也能正常工作并显示通知。但当我终止我的应用程序和任何其他用户发布数据时,我无法收到通知。我的应用程序终止时有没有办法调用通知功能?

UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.fireDate   = [NSDate dateWithTimeIntervalSinceNow:5];
notification.alertBody  = [NSString stringWithFormat:@"one person vote your post"];
[notificationArray addObject:@"one person vote your post"];
notification.timeZone   = [NSTimeZone defaultTimeZone];
notification.soundName  = UILocalNotificationDefaultSoundName;

[[UIApplication sharedApplication] scheduleLocalNotification:notification];

2 个答案:

答案 0 :(得分:2)

如果您从服务器发送其他人帖子(使用Web服务),您应该实施推送通知而不是本地通知。

本地通知:您需要在使用应用时指定启动时间。

在您的情况下,当其他用户发布时您的应用未运行。所以你没有得到触发事件。

答案 1 :(得分:0)

我认为您正在寻找的是使用远程通知,但仍在执行本地代码,然后重新发送本地通知以通知用户。

Apple已经意识到这一点,并添加了Silent Remote Notifications

  • 为此,您需要开发人员许可才能发送远程通知(以及随附的推送证书)
  • 每个设备注册的令牌后端,能够在新通知的情况下联系Apple APN
Apple已经发布了PushKit,据我所知它至少需要iOS8 +才能终止应用程序。

有关详细信息,请参阅此处:VoiP Push notifications best practices

我最近在Security.stackexchange.com上提出了一个问题,社区发布了一个非常全面的答案: WhatsApp and end-to-end encryption,我强烈建议您仔细阅读,因为我认为它是在类似的地方,WhatsApp似乎已经实现了它。