1

我有一个 iOS 应用程序需要在前台自动运行时更新其内容。如果在后台,我的应用程序不需要更新。

有一种现有的方法可以做到这一点,即 APNS(Apple Push Notification Service)。因为我不希望用户在后台看到通知消息,所以使用没有警报或消息的推送通知可能是一种解决方案。

但是,如果使用 APNS,iOS 会要求用户确认他们是否想通过我的应用接收通知。我认为用户在被操作系统询问时可能会感到困惑,因为我的应用程序实际上并没有向用户推送通知。

我目前使用的方法是每 30 秒拉一次我的 API 以查看是否有新内容可用。如果用户太多,此方法将失败。

是否有任何类似 3rd 方推送通知的服务在应用程序仅在前台运行时提供通知?(无需在后台收到通知)

4

2 回答 2

2

您可以为此使用静默通知,在 WWDC 2013 的“多任务处理新功能”演示文稿中,有一个关于静默推送通知的部分。如果您仅在content-available 设置为 1 的情况下发送 APS 有效负载,用户将不会收到通知。

通知到达application:didReceiveRemoteNotification:fetchCompletionHandler

你的有效载荷就像

{ 
  aps: {
          content-available: 1,
          sound: "default"
       }
}
于 2013-10-21T11:34:00.967 回答
0

在 的情况下push notification,用户必须push notification在应用程序第一次运行时接受。您也可以设置 a并且对于此用户在 期间silent push notification不会收到任何警报。notificationapplication run loop

如果你想避免push notification,那么你只能设置NSTimer你已经在做的事情。

可能有第三种情况,应用程序仅在foreground. 为此,您可以参考我的这篇文章。

于 2013-10-21T12:07:13.850 回答