Ios bgtaskscheduler не работаетIOS

Программируем под IOS
Ответить
Anonymous
 Ios bgtaskscheduler не работает

Сообщение Anonymous »

Я работаю над приложением, которое защищает некоторые приложения, и когда пользователь достигает особого количества шагов, оно не снимает эти приложения. < /p>
Мое вдохновение - это приложение ниже. (Социальные пределы) Его основная цель - периодически работать и проверять, достиг ли пользователь определенные шаги и не снятие приложения, даже когда приложение прекращается или в фоновом режиме. (Протестировал это, отменив разрешение и видит, разблокирует ли оно приложение, но оно не без этого разрешения). < /P>
Как я могу достичь того, чего достиг социальный предел. < /P>
Это мой код: < /p>
BGTaskScheduler.shared.register(forTaskWithIdentifier: refreshTaskIdentifier, using: nil) { task in
self.handleAppRefresh(task: task as! BGAppRefreshTask)
}
< /code>
Я вызываю функцию, чтобы установить планировщик: < /p>
scheduleAppRefresh()

private func scheduleAppRefresh() {
// MARK: - e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdentifier:@"com.test.socialLimit.refreshTask"]
// BGTaskScheduler.shared.cancel(taskRequestWithIdentifier: refreshTaskIdentifier)
BGTaskScheduler.shared.getPendingTaskRequests { requests in
print("\(requests.count) BGTask Pending")

guard requests.isEmpty else { return }

let request = BGAppRefreshTaskRequest(identifier: self.refreshTaskIdentifier)
request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60) // Earliest 15 mins later
do {
try BGTaskScheduler.shared.submit(request)
print("TASK SCHEDULE")
} catch {
print("Could not schedule app refresh: \(error)")
}
}
}
< /code>
Это моя фактическая функция обработки работы: < /p>
private func handleAppRefresh(task: BGAppRefreshTask) {
scheduleAppRefresh() // Schedule the next refresh

let queue = OperationQueue()
queue.maxConcurrentOperationCount = 1

let operation = BackgroundRefreshOperation()

task.expirationHandler = {
queue.cancelAllOperations()
}

operation.completionBlock = {
task.setTaskCompleted(success: !operation.isCancelled)
}

queue.addOperation(operation)
}
< /code>
Проблема в том, что она работает при отладке с помощью команды
e -l objc -(void) [[bgtaskscheduler sharedscheduler] _simulatelaunchfortaskwithidiveifier:@"com.test.sociallimit.refreshtask"] < /p>
nt on apllight. Я даже ждал 24 часа.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ot-running
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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