首页 > 解决方案 > 您可以同时为远程 VOIP 呼叫 (PKPushRegistry) 和本地 VOIP 呼叫 (NEAppPushManager) 注册应用程序吗?

问题描述

以前我的应用程序只收到来自 APNs 的 VOIP 推送来处理呼叫。但在某些情况下,我想使用在 iOS 14 中发布的新 API NEAppPushManager 和 NEAppPushProvider 来处理本地网络上的 VOIP 呼叫,而不是使用 APNs。

我在 AppDelegate didFinishLaunchingWithOptions 中为这样的 VOIP 呼叫注册了我的应用程序:

NEAppPushManager.loadAllFromPreferences { [weak self] (managers, _) in
        if let managers = managers {
          for manager in managers {
            manager.delegate = self
          }
        }
         DispatchQueue.main.async {
            voipRegistry = PKPushRegistry(queue: DispatchQueue.main)
            voipRegistry?.delegate = self
            voipRegistry?.desiredPushTypes = [.voIP]
         }
      }

只要我选择两种类型的接收 VOIP 呼叫中的一种,这种方法就可以很好地工作。好像我只收到我最后注册的类型的 VOIP 呼叫。有没有办法同时从 APNs 和我与 NEAppPushManager 的本地连接注册 VOIP 推送,还是我必须选择一个?

标签: swiftpush-notificationapple-push-notificationsvoip

解决方案


推荐阅读