【问题标题】:How to manage presence in background iOS+Pubnub .?如何在 iOS+Pubnub 后台管理状态?
【发布时间】:2015-04-25 05:42:41
【问题描述】:

我使用 Pubnub 框架创建了一个聊天应用程序。为此,我启用了单个频道的存在,并且所有用户都订阅了该频道。但是当我关闭应用程序(后台模式)时,pubnub 会给我该用户的超时声明。

但我想在用户终止应用程序之前显示用户在线。

我们将如何管理这种情况?

请指导。

【问题讨论】:

    标签: ios chat pubnub


    【解决方案1】:

    我从未使用过 PubNub,但查看它的文档,我发现您可能需要做几件事:

    1) 您需要让您的 PubNub 委托为方法 shouldRunClientInBackground 返回“YES”。

    2) 您可以修改应用程序的 plist 文件,使其需要在后台运行。 This Apple Technote for background tasks 告诉你怎么做。

    【讨论】:

    • 然而,不幸的是,在后台保持存在的应用程序很可能会被 Apple 拒绝。
    • 是的,我已经完成了 shouldRunClientInBackground=yes 但应用程序将在后台 30 秒后终止。这会导致问题管理存在(在线/离线)。 30 秒后,Pubnub 在后台断开连接。
    • 只是一个问题,Whatsapp 如何在后台保持连接/在线状态?但没有被苹果拒绝?
    • @John - 看看我的回答中的第 2 点——它是在应用程序的 plist 文件中设置的标志(或属性),它告诉 iOS 让应用程序在后台运行。
    【解决方案2】:

    您可以使用后台应用刷新并发出存在心跳请求。

    这里简单解释一下Background App Refresh

    请随意谷歌搜索更多结果

    您被限制在大约 30 秒内完成所有工作(如果您有有效的连接,时间应该足够了)。您还可以控制后台获取的间隔。看起来你必须自己实现其中的一些,但它应该在 iOS 7 和 iOS 8 上是可行的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 1970-01-01
      相关资源
      最近更新 更多