只有在前台运行时,Apple才会推送类似通知的服务

时间:2013-10-21 11:20:41

标签: ios apple-push-notifications foreground

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

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

但是,如果使用APNS,iOS会要求用户确认是否要通过我的应用接收通知。我认为,当操作系统询问用户时,用户可能会感到困惑,因为我的应用实际上并未向用户发送通知。

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

是否有任何第三方推送通知类服务在app仅在前台运行时提供通知? (在后台不需要通知)

2 个答案:

答案 0 :(得分:2)

您可以使用静音通知 在WWDC 2013的“多任务新功能”演示中,有一个关于静音推送通知的部分。如果您仅使用内容可用设置为1 发送APS有效负载,则不会通知用户该通知。

通知到达应用程序:didReceiveRemoteNotification:fetchCompletionHandler

您的有效负载就像

{ 
  aps: {
          content-available: 1,
          sound: "default"
       }
}

答案 1 :(得分:0)

如果是push notification,则用户必须在应用程序第一次运行时接受push notification。您也可以设置silent push notification,对于此用户,我们不会在notification期间收到application run loop的任何提醒。

如果您想避免使用push notification,那么您只能设置一个NSTimer

可能存在第三种情况,应用程序仅在与foreground进行时与服务器同步。为此,您可以参考我的this帖子。