ios - 可以超时的推送通知/替代方案

标签 ios notifications push

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

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

在我看来,有几种选择:

  • 服务器向用户发送通知。然后服务器稍后向用户发送“取消”消息,这会删除通知。
  • 服务器向具有内置计时器的用户发送通知。此计时器在本地进行监控,一旦超时,通知就会被删除。
  • 应用程序定期轮询服务器并根据服务器所说的安排/取消本地通知。

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

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

    谢谢你的时间!

    马特

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

    最佳答案

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

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

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

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

    关于ios - 可以超时的推送通知/替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16561572/

    相关文章:

    ios - 从 CoreData 读取数组时共享扩展崩溃

    iphone - 如何创建一个完全适合键盘上方的 UITextView?

    notifications - Laravel 5.3 检查通知是否被读取

    c++ - 如何在Qt5中通过http连接到PUSH服务器

    mercurial - 当已经拉取所有更改时强制推到新的头部

    ajax - 长轮询与常规轮询的优缺点是什么?

    ios - 发送消息的 Swift 代码不起作用

    ios - 如何处理App点击VoIP通知时的情况?

    c++ - 使用 ReadDirectoryChangesW 是否需要管理员权限?

    android - 警报通知立即触发。安卓