当应用关闭或手机关闭时,Android / iOS应用会收到Pusher条消息吗?
我期待发生什么......
手机开机时&应用已启动,Pusher文档对如何应对发送到应用的推送消息非常直接。
手机开机时&应用程序已关闭,手机应收到已发送给应用程序的通知。
当手机关闭时,手机会在重新开启时收到通知,通知已将某些内容发送到该应用。
这些甚至可能吗?如果是的话,有什么建议值得关注?如果不是,可以采取哪些解决方法?
答案 0 :(得分:4)
当使用Pusher的应用程序在iOS和Android上进入后台时,与Pusher的连接可能会保持活动状态几分钟。但最终这种联系将被关闭。你无法阻止你的应用程序中发生这种情况(尽管在提交到Apps商店时,可能会出现“hack”,说明你的应用程序是Voice应用程序)。
因此,您应该监控您的应用程序移至后台并进行后备,以便在未连接时将消息发送至手机。
请参阅How get pusher events when the iOS app go to the background?了解libPusher(Pusher iOS库)。
以下是“服务流程”中Android Processes & Threads Lifecycle docs的摘录:
运行已使用startService()方法启动的服务的进程,并且不属于上述两个类别中的任何一个。虽然服务流程并不直接与用户看到的任何内容联系在一起,但它们通常都是用户关心的事情(例如在后台播放音乐或在网络上下载数据),因此除非内存不足,否则系统会保持运行状态保留它们以及所有前景和可见过程。
因此,在这样的线程中运行Pusher实例是一个可行的选择。
但是,仍然会有用户下线的情况。在这种情况下,您的服务器可以通过querying the Pusher HTTP API或使用WebHooks检测用户是否在线,如果用户已离线或重新联机,您可以立即通知您的服务器。
使用上述机制可以促进smart notifications;如果用户在线(应用程序位于前台),则由Pusher将消息发送给他们,如果他们处于脱机状态(应用程序在后台),则使用替代机制进行传递(本机推送通知,短信或电子邮件)