Асинхронная задача после DidReceiveIncomingPushWithPayload и перед reportNewIncomingCallIOS

Программируем под IOS
Anonymous
Асинхронная задача после DidReceiveIncomingPushWithPayload и перед reportNewIncomingCall

Сообщение Anonymous »

Когда я получаю уведомление PushKit, мне нужно немедленно вызвать CXProvider().reportNewIncomingCall, иначе приложение будет закрыто с сообщением ниже.
Killing app because it never posted an incoming call
to the system after receiving a PushKit VoIP push.

Есть ли способ запустить асинхронную задачу после получения уведомления и вызвать CXProvider().reportNewIncomingCall, когда асинхронная задача будет выполнена? Я пытался использовать фоновую задачу, чтобы избежать закрытия приложения, но это не сработало. Вот что я пробовал:
var backgroundTaskID: UIBackgroundTaskIdentifier = .invalid

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
// Start a background task to extend execution time
backgroundTaskID = UIApplication.shared.beginBackgroundTask(withName: "HandleVoIPPush") {
// End task if time expires
UIApplication.shared.endBackgroundTask(self.backgroundTaskID)
self.backgroundTaskID = .invalid
}

// Start your async task
asyncTask { _ in
provider.reportNewIncomingCall(with: callUUID, update: update) { _ in }

// End the background task
UIApplication.shared.endBackgroundTask(self.backgroundTaskID)
self.backgroundTaskID = .invalid

// Call the completion handler to let the system know you're done
completion()
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... newincomin

Вернуться в «IOS»