Я пытаюсь загрузить файл при нажатии кнопки уведомления, но когда приложение находится в фоновом режиме, вызов API не работает.
Код уведомления:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo as! [String: AnyObject]
switch response.actionIdentifier {
case "DownloadDutyPlanAction":
print("Download tap")
downloadDutyPlanFromNotification(fetchCompletionHandler: nil)
completionHandler()
case "CancelAction":
print("Cancel tap")
default:
completionHandler()
}
func downloadFromNotification(fetchCompletionHandler completionHandler: ((UIBackgroundFetchResult) -> Void)?) {
let downloadPDFOperation = PDFDownloadOperation.init() { result in
switch result {
case .success:
DispatchQueue.main.async {
}
completionHandler?(UIBackgroundFetchResult.newData)
case .failure:
completionHandler?(UIBackgroundFetchResult.newData)
}
}
QueueManager.shared.enqueueNotification(downloadPDFOperation)
}
Класс сети:
private var task: URLSessionTask?
private var session = URLSession.init(configuration: URLSessionConfiguration.default, delegate: NSURLSessionPinningDelegate(), delegateQueue: nil)
func request(forDownloadUrl route: EndPoint, completion: @escaping NetworkDownloadRouterCompletion) {
do {
let request = try self.buildRequest(from: route)
task = session.downloadTask(with: request) { localURL, response, error in
if let tempLocation = localURL {
completion(response, error, tempLocation)
} else {
completion(response, error, nil)
}
}
} catch {
completion(nil, error, nil)
}
self.task?.resume()
}
Подробнее здесь: https://stackoverflow.com/questions/782 ... background
Вызов API действенного уведомления не работает в фоновом режиме ⇐ IOS
Программируем под IOS
-
Anonymous
1711878063
Anonymous
Я пытаюсь загрузить файл при нажатии кнопки уведомления, но когда приложение находится в фоновом режиме, вызов API не работает.
Код уведомления:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo as! [String: AnyObject]
switch response.actionIdentifier {
case "DownloadDutyPlanAction":
print("Download tap")
downloadDutyPlanFromNotification(fetchCompletionHandler: nil)
completionHandler()
case "CancelAction":
print("Cancel tap")
default:
completionHandler()
}
func downloadFromNotification(fetchCompletionHandler completionHandler: ((UIBackgroundFetchResult) -> Void)?) {
let downloadPDFOperation = PDFDownloadOperation.init() { result in
switch result {
case .success:
DispatchQueue.main.async {
}
completionHandler?(UIBackgroundFetchResult.newData)
case .failure:
completionHandler?(UIBackgroundFetchResult.newData)
}
}
QueueManager.shared.enqueueNotification(downloadPDFOperation)
}
Класс сети:
private var task: URLSessionTask?
private var session = URLSession.init(configuration: URLSessionConfiguration.default, delegate: NSURLSessionPinningDelegate(), delegateQueue: nil)
func request(forDownloadUrl route: EndPoint, completion: @escaping NetworkDownloadRouterCompletion) {
do {
let request = try self.buildRequest(from: route)
task = session.downloadTask(with: request) { localURL, response, error in
if let tempLocation = localURL {
completion(response, error, tempLocation)
} else {
completion(response, error, nil)
}
}
} catch {
completion(nil, error, nil)
}
self.task?.resume()
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78250825/actionable-notification-api-call-not-working-in-background[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия