我正在开发一个必须通知用户服务器启动的事件的应用程序。这些通知仅在很短的时间内(30-60秒)有用。出于这个原因,我正在寻找一种方法,既可以快速发送通知,而且重要的是,可以在通知发布后以某种方式使通知无效(撤回/取消/超时)。
我的理解是APNS不适合这个。他们“发送并忘记”,无法检查/修改/删除通知。这个功能对我的应用程序来说是不可或缺的,所以我愿意接受任何可能让我实现此目的的方法或服务建议。
在我看来,有几种选择:
服务器向用户发送通知。然后,服务器会向用户发送“取消”消息,从而删除通知。
服务器向用户发送通知,该用户具有内置计时器。此计时器在本地监视,一旦过去,通知就会被删除。
应用程序会定期轮询服务器并根据服务器的说明安排/取消本地通知。
我的选择是选项2,因为它是自包含且高效的。一条消息启动调度和取消。选项3在iOS关闭应用程序时遇到问题,如果它在后台(更不用说它必须轮询服务器的速率,因为通知仅在约30秒内有用)。
Urban Airship等任何服务是否提供了一些可以实现这一目标的功能?任何其他建议/完成方法的工作?非常感谢。
谢谢你的时间!
马特
编辑:为了鼓励开箱即用的思维,另一个想法可能是服务器启动与应用程序用户的自动电话呼叫。如果用户应答呼叫,则向他们提供所需的信息。如果没有,则信息不再可用。有点古怪,我的直觉是它会很昂贵,但我对任何事情持开放态度。
答案 0 :(得分:2)
任何异步发生的事情都可以通过推送通知完成,因为它已经在您和您的客户之间提供了单向,即时的通信通道,因此无需进行奇怪的电话呼叫(这可能会中断用户的活动,打扰他们)。
您可以使用双重解决方案,在其中通知您的用户他们在收件箱中有多少未读通知。然后,您可以实现自己的应用内消息收件箱,该收件箱连接到您的服务器并获取相关数据(如果它尚未过期 - 如果有,请让用户知道 - )。
这样,用户就可以知道有多少通知可供他们使用,但他们只能检查那些仍然有效的通知。 UrbanAirship采用这种方法来实现Rich Push功能。
除此之外,您需要记住推送通知对用户来说非常具有干扰性,因此明智地使用它们或者您会看到您的用户取消订阅,甚至更糟糕的是,卸载您的应用。
答案 1 :(得分:1)
嗯,我的猜测你运气不好,因为你唯一的选择是APNS。
第三方服务无法为Apple提供的APNS服务器添加额外功能。
至于你的建议服务器将是应用程序,你不能拦截iOS上的呼叫,短信,...我真的只有解决方案就是构建一个VOIP应用程序,当通知需要显示时,它将调用用户。
Apple没有解决方案可以满足您的需求,猜测它必须是一个Android应用程序然后:S