Когда я получаю уведомление 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
Асинхронная задача после DidReceiveIncomingPushWithPayload и перед reportNewIncomingCall ⇐ IOS
Программируем под IOS
1737001700
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()
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79360363/async-task-after-didreceiveincomingpushwithpayload-and-before-reportnewincomin[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия