【问题标题】:Using background processes in iOS with Twilio在 iOS 中通过 Twilio 使用后台进程
【发布时间】:2015-04-16 10:34:08
【问题描述】:

我正在使用 Twilio for iOS 开发一个 VoIP 应用程序。该应用程序应该能够接收传入连接。为此,我检查了 VoIP 和声音功能,以便应用程序继续运行并侦听端口。

为了实现这一点,我在我的 appDelegate 中初始化了一个 TCDevice 并将 appDelegate 设置为TCDeviceDelegate,以便系统继续侦听新连接。但该应用程序最终会进入后台,甚至在某个时候终止。那么此时我应该怎么做呢?

这是让应用在后台保持监听的正确方法吗?我一直在读到我需要在我的 didEnterBackground 方法中使用 setKeepAliveTimeout,但 Apple 在使用时说iOS8+ ,我们应该注册远程通知。

另外,我正在阅读 Apple 文档,他们说应该正确标记套接字,以便系统保持这些套接字处于活动状态。 Twilio 的库会处理这些细节吗?

我对整个过程很困惑。 Twilio 会处理所有事情吗?如果有,怎么做?

【问题讨论】:

    标签: ios iphone twilio voip


    【解决方案1】:

    Twilio SDK 会为您调用 setKeepAliveTimeout,因此您无需调用它或担心套接字。您需要做的就是将两个背景设置添加到 info.plist 以播放音频和 VOIP。

    Twilio 在线文档不是很好,但是如果您下载 iOS SDK 并解压缩它,您会发现一个不在线的常见问题解答,其中解释了更多信息。您还会发现一个比 Monkey 项目更加充实的 BasicPhone Xcode 项目。

    我还发现,除非你掏出一些钱,否则电话都不会真正接通。

    如果您遇到任何问题,那么 Twilio 电子邮件支持会在每个问题的前 48 小时内提供出色的支持,然后他们往往会保持沉默。 YMMV。

    所有这些都是我 2 个月前可以完成的信息,希望对您有所帮助。

    【讨论】:

    • 那么这个 setKeepAliveTimeout 函数里面到底发生了什么?因为我在我的应用程序委托中设置传入的 TCDevice,而我的应用程序委托是 TCDevice 委托。这足以让应用无限期地运行吗?
    • 我不知道他们在里面放了什么,但这不是你的问题。只要您将我提到的那些背景设置添加到您的 plist 中,就足够了。请务必查看 SDK tarball 中的 BasicPhone 应用程序,它会为您解答很多问题。祝你好运。
    • 谢谢,我阅读了您推荐的所有内容,确实有帮助。我无法弄清楚的一个问题是:如何检查传入的设备访问令牌是否已过期,以便我可以在后台对其进行更新。 Twilio 说他们安装了后台处理程序,我无法覆盖它。那么您认为 Twilio 会为我更新功能令牌吗? (我对此表示怀疑)。
    猜你喜欢
    • 2014-02-20
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多