【问题标题】:Notify video chat application when app is terminated应用程序终止时通知视频聊天应用程序
【发布时间】:2016-09-08 19:23:46
【问题描述】:

当应用程序处于终止状态时,有什么方法可以通知我的视频聊天应用程序有来电? (就像一个 Android 后台服务。)

当应用程序处于运行和后台状态时,我通过套接字通知来电。

【问题讨论】:

    标签: ios sockets


    【解决方案1】:

    使用 VoIP 的应用程序受到苹果的不同对待,并拥有更多特权。过去,这意味着保持与服务器的永久连接,以便在调用发生时得到通知。

    这在节能方面不是很有效。

    从 iOS8 开始,建议使用 PushKit(推送通知 API)在呼叫发生时通知您的用户。具有 VoIP 权限的应用将在现场收到通知,无论应用处于何种状态,它都可以唤醒您的应用。

    这里是来自苹果的世界:

    开发者应该使用 PushKit 而不是持久连接 框架——允许应用程序接收推送(通知)的 API 当数据可用时)来自远程服务器。每当推 收到后,该应用程序将被调用。例如,一个 VoIP 应用程序可以 接到电话时显示警报,并提供一个选项 接听或拒绝来电。它甚至可以开始采取前期措施 在用户决定接受的情况下发起呼叫。

    https://developer.apple.com/library/ios/documentation/Performance/Conceptual/EnergyGuide-iOS/OptimizeVoIP.html

    【讨论】:

      【解决方案2】:
      • 获取 pushkit 有效负载
      • 在ios代码端实现pushkit
      • 收到静默通知后
      • 安排本地通知
      • 将重要信息保存在本地通知的用户信息中
      • 还要在 NSUserDefault 中保留本地通知对象
      • 如果您的设备重新启动,那么您可以从 NSUserDefault 对象中检索 localnotification 用户信息
      • 收到静音通知后,您的套接字将激活,直到播放本地通知声音(最长 30 秒)
      • 如果您希望来电响铃超过 30 秒,则服务器必须每 30 秒发送一次静音通知
      • 删除以前的对象并重新安排最新的本地通知

      如果您在推送套件实施方面需要任何帮助,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-08
        • 2016-03-25
        • 1970-01-01
        • 2018-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多