у нас есть клиент Socket.io для чатов, а также для получения некоторых данных,
поэтому проблема в том, что когда мы переводим приложение в фоновый режим в IOS, через 30 секунд оно отключается, да, оно подключается снова, когда вы поместите приложение на передний план, но мне нужно, чтобы оно оставалось на связи хотя бы 5 минут.
Пробовал этот код также из чата.
import UIKit
import Capacitor
import Firebase
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var backgroundTask: UIBackgroundTaskIdentifier = .invalid
var timer: Timer?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
func keepSocketAliveForTenMinutes() {
// Start a background task to extend runtime
backgroundTask = UIApplication.shared.beginBackgroundTask(withName: "KeepSocketAlive") {
// End the task if time expires
UIApplication.shared.endBackgroundTask(self.backgroundTask)
self.backgroundTask = .invalid
}
// Start a timer to keep the socket alive
timer = Timer.scheduledTimer(withTimeInterval: 10 * 60, repeats: false) { [weak self] _ in
self?.endBackgroundTask()
}
}
func endBackgroundTask() {
if backgroundTask != .invalid {
UIApplication.shared.endBackgroundTask(backgroundTask)
backgroundTask = .invalid
}
timer?.invalidate()
timer = nil
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Start keeping the socket alive for 10 minutes
keepSocketAliveForTenMinutes()
}
func applicationWillEnterForeground(_ application: UIApplication) {
// End the background task when the app returns to the foreground
endBackgroundTask()
}
func applicationWillTerminate(_ application: UIApplication) {
endBackgroundTask()
}
// Other methods ...
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... acitor-ios
Socket io отключается, когда приложение находится в фоновом режиме (ионный конденсатор ios) ⇐ IOS
Программируем под IOS
1736915797
Anonymous
у нас есть клиент Socket.io для чатов, а также для получения некоторых данных,
поэтому проблема в том, что когда мы переводим приложение в фоновый режим в IOS, через 30 секунд оно отключается, да, оно подключается снова, когда вы поместите приложение на передний план, но мне нужно, чтобы оно оставалось на связи хотя бы 5 минут.
Пробовал этот код также из чата.
import UIKit
import Capacitor
import Firebase
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var backgroundTask: UIBackgroundTaskIdentifier = .invalid
var timer: Timer?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
func keepSocketAliveForTenMinutes() {
// Start a background task to extend runtime
backgroundTask = UIApplication.shared.beginBackgroundTask(withName: "KeepSocketAlive") {
// End the task if time expires
UIApplication.shared.endBackgroundTask(self.backgroundTask)
self.backgroundTask = .invalid
}
// Start a timer to keep the socket alive
timer = Timer.scheduledTimer(withTimeInterval: 10 * 60, repeats: false) { [weak self] _ in
self?.endBackgroundTask()
}
}
func endBackgroundTask() {
if backgroundTask != .invalid {
UIApplication.shared.endBackgroundTask(backgroundTask)
backgroundTask = .invalid
}
timer?.invalidate()
timer = nil
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Start keeping the socket alive for 10 minutes
keepSocketAliveForTenMinutes()
}
func applicationWillEnterForeground(_ application: UIApplication) {
// End the background task when the app returns to the foreground
endBackgroundTask()
}
func applicationWillTerminate(_ application: UIApplication) {
endBackgroundTask()
}
// Other methods ...
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79357061/socket-io-disconnects-while-app-is-on-background-ionic-capacitor-ios[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия