【问题标题】:Push notification/alternative that can timeout可以超时的推送通知/替代方案
【发布时间】:2013-05-15 18:02:34
【问题描述】:

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

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

在我看来有几个选择:

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

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

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

我的偏好是选项 2,因为它是独立且高效的。一条消息启动调度和取消。如果应用程序在后台,选项 3 会导致 iOS 关闭应用程序(更不用说它必须轮询服务器的速度,因为通知只会在大约 30 秒内有用)。

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

感谢您的宝贵时间!

马特

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

【问题讨论】:

  • 这个answer 值得一读。与您的问题不完全相同,但类似。
  • 感谢 Amar 的链接,它看起来确实很有用!我会好好读书的。

标签: ios notifications push


【解决方案1】:

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

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

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

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

【讨论】:

  • 感谢您的信息!我还不太担心会被打扰,因为用户发起了与服务器的任何联系。他们请求服务器与他们联系并提供信息,当信息可用时,会发送这些通知。不过,我会好好考虑您提出的方法-它绝对有其优点!马特
【解决方案2】:

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

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

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

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

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

【讨论】:

  • 感谢 rckoenes - 希望我能找到一种在后台运行我的应用程序的方法(它确实使用位置服务)。
  • 如果是这样,您可以在位置更改时轮询服务器(而不是设置间隔)。 Apple 建议您在进行重大更改时检查背景中的位置,以免耗尽电池。但是您将遇到同样的问题,因为您将不得不使用UILocalNotification 提示用户,但幸运的是您能够取消(和删除)本地通知。需要注意的一件事是,如果您的应用在后台定位位置耗尽电池电量,则评论可能会拒绝您的应用,或者更糟糕的是,您会收到很多差评。
  • 再次感谢您提供的重要信息 rckoenes,我真的很感激!我将改为查看 ale0xB 提供的方法,因为它似乎避免了许多这些问题。
  • ale0xB 的解决方案真的很棒,他描述的方式就像 Facebook 一样。
猜你喜欢
  • 2018-09-27
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
相关资源
最近更新 更多