Voip通知在iOS 14中应用程序终止或终止时未收到



在我的应用程序中,它是VoIP呼叫的现有功能。一些用户向我报告没有接收到VoIP呼叫。在我检查之后,发现报告的用户版本是ios 13或更高版本。

但我的一个朋友有iPhone 6 plus(ios 12.5(,因为我接到了VoIP电话。

ios 13或更高版本仍有任何设置。

这是我的代码:

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
let provider1 = CXProvider(configuration: defaultConfig())
provider1.setDelegate(self, queue: nil)
let update = CXCallUpdate()
update.supportsDTMF = true
update.supportsHolding = true
update.supportsGrouping = false
update.supportsUngrouping = false
update.hasVideo = false
//  self.provider = provider1
let bgTaskID = UIApplication.shared.beginBackgroundTask(expirationHandler: nil)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()) {
UIApplication.shared.endBackgroundTask(bgTaskID)
}
uuidneww = UUID()
update.remoteHandle = CXHandle(type: .generic, value: "Calling")
provider1.reportNewIncomingCall(with:uuidneww , update: update, completion: { error in })
}

iOS 15:

如果在前台/后台有推送,但在终止状态下没有推送,并且您触发CallKit API,请确保:

  1. PKPushRegistry对象是在application(didFinishLaunchingWithOptions:)中创建的。这一步非常重要,因为您可以在某个视图控制器中创建它,当然它不会在后台调用
  2. delegate已设置
  3. 调用pushRegistry:didReceiveIncomingPushWithPayload:forType:withCompletionHandler:委托方法。一定要使用带有完成块的方法,这样它仍然有效,将来可能不会

相关内容

  • 没有找到相关文章

最新更新