推送可能超时的通知/替代方案

时间:2013-05-15 09:36:30

标签: ios notifications push

我正在开发一个必须通知用户服务器启动的事件的应用程序。这些通知仅在很短的时间内(30-60秒)有用。出于这个原因,我正在寻找一种方法,既可以快速发送通知,而且重要的是,可以在通知发布后以某种方式使通知无效(撤回/取消/超时)。

我的理解是APNS不适合这个。他们“发送并忘记”,无法检查/修改/删除通知。这个功能对我的应用程序来说是不可或缺的,所以我愿意接受任何可能让我实现此目的的方法或服务建议。

在我看来,有几种选择:

  1. 服务器向用户发送通知。然后,服务器会向用户发送“取消”消息,从而删除通知。

  2. 服务器向用户发送通知,该用户具有内置计时器。此计时器在本地监视,一旦过去,通知就会被删除。

  3. 应用程序会定期轮询服务器并根据服务器的说明安排/取消本地通知。

  4. 我的选择是选项2,因为它是自包含且高效的。一条消息启动调度和取消。选项3在iOS关闭应用程序时遇到问题,如果它在后台(更不用说它必须轮询服务器的速率,因为通知仅在约30秒内有用)。

    Urban Airship等任何服务是否提供了一些可以实现这一目标的功能?任何其他建议/完成方法的工作?非常感谢。

    谢谢你的时间!

    马特

    编辑:为了鼓励开箱即用的思维,另一个想法可能是服务器启动与应用程序用户的自动电话呼叫。如果用户应答呼叫,则向他们提供所需的信息。如果没有,则信息不再可用。有点古怪,我的直觉是它会很昂贵,但我对任何事情持开放态度。

2 个答案:

答案 0 :(得分:2)

任何异步发生的事情都可以通过推送通知完成,因为它已经在您和您的客户之间提供了单向,即时的通信通道,因此无需进行奇怪的电话呼叫(这可能会中断用户的活动,打扰他们)。

您可以使用双重解决方案,在其中通知您的用户他们在收件箱中有多少未读通知。然后,您可以实现自己的应用内消息收件箱,该收件箱连接到您的服务器并获取相关数据(如果它尚未过期 - 如果有,请让用户知道 - )。

这样,用户就可以知道有多少通知可供他们使用,但他们只能检查那些仍然有效的通知。 UrbanAirship采用这种方法来实现Rich Push功能。

除此之外,您需要记住推送通知对用户来说非常具有干扰性,因此明智地使用它们或者您会看到您的用户取消订阅,甚至更糟糕的是,卸载您的应用。

答案 1 :(得分:1)

嗯,我的猜测你运气不好,因为你唯一的选择是APNS。

  1. 不支持取消通知。
  2. 应用无法访问应用的通知,只能访问用户用来打开应用的通知。此外,您无法在后台运行应用程序,因为它们不用于位置,媒体,VOIP或需要访问某种附件。
  3. 请参阅我的观点,您无法在背景中真正运行应用程序。
  4. 第三方服务无法为Apple提供的APNS服务器添加额外功能。

    至于你的建议服务器将是应用程序,你不能拦截iOS上的呼叫,短信,...我真的只有解决方案就是构建一个VOIP应用程序,当通知需要显示时,它将调用用户。

    Apple没有解决方案可以满足您的需求,猜测它必须是一个Android应用程序然后:S