【问题标题】:Can Pusher messages be received on Android/iOS app when the app is closed or phone is turned off关闭应用或手机关机后,Android/iOS 应用能否接收 Pusher 消息
【发布时间】:2015-10-26 06:59:42
【问题描述】:

在Android/iOS应用关闭或手机关机时,是否可以在Android/iOS应用上接收Pusher消息?

我期望会发生什么......

  1. 当手机处于开机状态且应用处于开机状态时,Pusher 文档非常直接地说明了如何对发送到应用的推送消息做出反应。

  2. 当手机开机并关闭应用程序时,手机应该会收到通知,告知应用程序已发送某些内容。

  3. 当手机关机时,手机应该会在重新开机时收到通知,通知有内容已发送到应用程序。

这些甚至可能吗?如果是,有什么建议需要注意?如果不是,有什么解决方法?

【问题讨论】:

  • 你能澄清一下 pusherIO 是什么吗?你能参考图书馆的文档吗?
  • www.pusher.com - 实时消息传递平台作为连接客户端的服务...有点像 pubnub
  • 澄清一下:您使用的是什么库? pusherIO 是什么?
  • PusherIO 是以前更流行的名称。现在我猜它被称为唯一的推动者。我正在讨论适用于 Android 的推送器 SDK。我还没有开始使用它。我只是想了解它在手机实践中的实施范围。如果社区中的任何人有使用推送器 SDK for Android 的经验,我希望他/她能够帮助我评估我在问题中提到的 SDK 的范围。根据对该范围的澄清,我可能会开始尝试。到目前为止,我认为文档中没有明确解决我的具体问题。
  • Pusher 以前被称为 PusherApp(但仍称为“Pusher”),因为它具有该域和 Twitter 句柄。自 2011 年获得资助以来,他们也拥有 Pusher 域和 Twitter 句柄。

标签: android ios push-notification apple-push-notifications pusher


【解决方案1】:

当使用 Pusher 的应用程序在 iOS 和 Android 上进入后台时,与 Pusher 的连接可能会保持活跃几分钟。但最终该连接将被关闭。您无法阻止在您的应用程序中发生这种情况(尽管在提交到应用商店时可能会出现“黑客”声明您的应用程序是语音应用程序)。

因此,您应该监控移动到后台的应用程序,并在未连接时将消息发送到手机。

请参阅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 向他们发送消息,如果他们离线(应用程序在后台),则使用替代机制进行传递(本机推送通知、SMS 或电子邮件) .

【讨论】:

  • 很好的答案@leggetter。感谢你的回答。你提到了一个专门为 iOS 设计的库。您对 Android 有什么样的解决方法或建议?您是否建议使用即使在应用程序关闭时也能保持推送连接活动的后台服务? (当然效率很低)。如果您可以使用此信息编辑您的答案,那就太好了。谢谢。
  • @syedrakib 我已经对 Android 做了一些进一步的调查,并将相关信息添加到答案中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
相关资源
最近更新 更多