1

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

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

在我看来,有几种选择:

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

  2. 服务器向具有内置计时器的用户发送通知。此计时器在本地进行监控,一旦超时,通知就会被删除。

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

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

诸如 Urban Airship 之类的任何服务是否提供了一些可以实现此目的的功能?任何其他建议/完整的解决方法?都非常感谢。

谢谢你的时间!

马特

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

4

2 回答 2

2

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

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

这样,用户将能够知道有多少通知可供他们使用,但他们只能检查仍然有效的通知。UrbanAirship 将这种方法用于他们的Rich Push功能。

除此之外,您需要记住,推送通知可能对用户造成非常大的干扰,因此请明智地使用它们,否则您会看到您的用户取消订阅,甚至更糟糕的是,卸载您的应用程序。

于 2013-05-15T10:01:37.780 回答
1

好吧,我猜你不走运,因为你唯一的选择是 APNS。

  1. 不支持取消通知。
  2. 应用程序无法访问应用程序的通知,只能访问用户用来打开应用程序的通知。此外,您不能真正在后台运行应用程序,因为它们不用于位置、媒体、VOIP 或需要访问某种附件。
  3. 请参阅我的观点,即您无法真正在后台运行应用程序。

第三方服务无法向 Apple 提供的 APNS 服务器添加额外功能。

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

Apple 没有适合您需要的解决方案,猜测它必须是一个 android 应用程序然后:S

于 2013-05-15T09:42:27.080 回答