Я пытаюсь реализовать новую функциональность фоновых задач iOS 13 с новым приложением, которое использует Сцены (также новые).Примеров не так много, но те, которые я обнаружил, не использовали SceneDelegates, вместо этого вся логика содержалась в AppDelegate.Это вызывает проблемы, так как событие для приложения, переходящего в фоновый режим, теперь вызывается в SceneDelegate, а не в AppDelegate.
Этот метод не запускается в AppDelegate при использовании сцен
func applicationDidEnterBackground(_ application: UIApplication) {
}
Этот метод запускается в SceneDelegate
func sceneDidEnterBackground(_ scene: UIScene) {
}
Я не могу найти соответствующий метод SceneDelegateдля следующего метода в AppDelegate, где во всех примерах показана регистрация задач BGTaskScheduler
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
BGTaskScheduler.shared.register(forTaskWithIdentifier: "UNIQUE_ID", using: DispatchQueue.global()) { task in
refreshMethod(task: task as! BGAppRefreshTask)
}
}
Мой вопрос заключается в том, есть ли какое-либо событие в SceneDelegate, где я могу зарегистрировать задачу, и если нет, то какой шаблон рекомендуется использоватьдля приложений на основе сцены.