Как в iOS Swift отличить заблокированный экран при открытии приложения от фонового состояния приложения, когда телефон р ⇐ IOS
Как в iOS Swift отличить заблокированный экран при открытии приложения от фонового состояния приложения, когда телефон р
На самом деле я хочу различать два состояния:
[*]
Во-первых, когда приложение было открыто и пользователь нажал кнопку блокировки, мобильный телефон заблокирован, и приложение перешло в фоновый режим.
[*]
Во-вторых, когда приложение было открыто и пользователь нажал кнопку «Домой» или провел по ней вверх, приложение перешло в фоновый режим, но телефон остался разблокированным.
В обоих случаях приложение переходит в фоновый режим, поэтому я не могу определить, перешло ли оно в фоновый режим с помощью кнопки блокировки или простого смахивания кнопки «Домой».
Я попробовал комбинацию этих трех методов жизненного цикла приложения в файле AppDelegate.swift, чтобы определить, переходит ли приложение в фоновый режим при нажатии кнопки блокировки или при пролистывании кнопки «Домой» вверх:
[*]applicationWillResignActive [*]applicationDidBecomeActive [*]applicationDidEnterBackground
Я инициализировал эти три переменные-флаги значением false в функции приложения внутри AppDelegate.swift:
let willResignActive = UserDefaults.standard пусть DidBecomeActive = UserDefaults.standard пусть DidEnterBackground = UserDefaults.standard willResignActive.set(false, forKey: «willResignActive») DidBecomeActive.set(false, forKey: «didBecomeActive») DidEnterBackground.set(false, forKey: «didEnterBackground») Это код моего файла AppDelegate.swift:
импортировать UIKit импортировать конденсатор @UIApplicationMain класс AppDelegate: UIResponder, UIApplicationDelegate { окно вар: UIWindow? func application(_ application: UIApplication, DidFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Переопределить точку настройки после запуска приложения. пусть willResignActive = UserDefaults.standard пусть DidBecomeActive = UserDefaults.standard пусть DidEnterBackground = UserDefaults.standard willResignActive.set(false, forKey: «willResignActive») DidBecomeActive.set(false, forKey: «didBecomeActive») DidEnterBackground.set(false, forKey: «didEnterBackground») вернуть истину } func applicationWillResignActive (_ приложение: UIApplication) { print("Приложение будет отключено!") пусть willResignActive = UserDefaults.standard willResignActive.set(true, forKey: «willResignActive») } func applicationDidEnterBackground (_ приложение: UIApplication) { print("Приложение вошло в фоновый режим!") пусть DidEnterBackground = UserDefaults.standard DidEnterBackground.set(true, forKey: "didEnterBackground") } func applicationDidBecomeActive (_ приложение: UIApplication) { print("Приложение стало активным!") пусть DidBecomeActive = UserDefaults.standard DidBecomeActive.set(true, forKey: «didBecomeActive») } } Короче, я пробовал комбинацию этих трех методов жизненного цикла, чтобы установить переменные флага в значение true, чтобы определить, перешло ли приложение в фоновый режим при нажатии кнопки блокировки или кнопки «Домой», предполагая, что если какая-либо из вышеперечисленных функций не выполняется вызывается в любом из двух вышеуказанных сценариев (нажата кнопка блокировки или нажата кнопка «Домой»):
[*]applicationWillResignActive [*]applicationDidBecomeActive [*]applicationDidEnterBackground
Таким образом, в обоих случаях для всех трех переменных было установлено значение true, из-за чего я не мог отличить, перешло ли приложение в фоновый режим с помощью кнопки блокировки или кнопки «Домой»!ваш текст
На самом деле я хочу различать два состояния:
[*]
Во-первых, когда приложение было открыто и пользователь нажал кнопку блокировки, мобильный телефон заблокирован, и приложение перешло в фоновый режим.
[*]
Во-вторых, когда приложение было открыто и пользователь нажал кнопку «Домой» или провел по ней вверх, приложение перешло в фоновый режим, но телефон остался разблокированным.
В обоих случаях приложение переходит в фоновый режим, поэтому я не могу определить, перешло ли оно в фоновый режим с помощью кнопки блокировки или простого смахивания кнопки «Домой».
Я попробовал комбинацию этих трех методов жизненного цикла приложения в файле AppDelegate.swift, чтобы определить, переходит ли приложение в фоновый режим при нажатии кнопки блокировки или при пролистывании кнопки «Домой» вверх:
[*]applicationWillResignActive [*]applicationDidBecomeActive [*]applicationDidEnterBackground
Я инициализировал эти три переменные-флаги значением false в функции приложения внутри AppDelegate.swift:
let willResignActive = UserDefaults.standard пусть DidBecomeActive = UserDefaults.standard пусть DidEnterBackground = UserDefaults.standard willResignActive.set(false, forKey: «willResignActive») DidBecomeActive.set(false, forKey: «didBecomeActive») DidEnterBackground.set(false, forKey: «didEnterBackground») Это код моего файла AppDelegate.swift:
импортировать UIKit импортировать конденсатор @UIApplicationMain класс AppDelegate: UIResponder, UIApplicationDelegate { окно вар: UIWindow? func application(_ application: UIApplication, DidFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Переопределить точку настройки после запуска приложения. пусть willResignActive = UserDefaults.standard пусть DidBecomeActive = UserDefaults.standard пусть DidEnterBackground = UserDefaults.standard willResignActive.set(false, forKey: «willResignActive») DidBecomeActive.set(false, forKey: «didBecomeActive») DidEnterBackground.set(false, forKey: «didEnterBackground») вернуть истину } func applicationWillResignActive (_ приложение: UIApplication) { print("Приложение будет отключено!") пусть willResignActive = UserDefaults.standard willResignActive.set(true, forKey: «willResignActive») } func applicationDidEnterBackground (_ приложение: UIApplication) { print("Приложение вошло в фоновый режим!") пусть DidEnterBackground = UserDefaults.standard DidEnterBackground.set(true, forKey: "didEnterBackground") } func applicationDidBecomeActive (_ приложение: UIApplication) { print("Приложение стало активным!") пусть DidBecomeActive = UserDefaults.standard DidBecomeActive.set(true, forKey: «didBecomeActive») } } Короче, я пробовал комбинацию этих трех методов жизненного цикла, чтобы установить переменные флага в значение true, чтобы определить, перешло ли приложение в фоновый режим при нажатии кнопки блокировки или кнопки «Домой», предполагая, что если какая-либо из вышеперечисленных функций не выполняется вызывается в любом из двух вышеуказанных сценариев (нажата кнопка блокировки или нажата кнопка «Домой»):
[*]applicationWillResignActive [*]applicationDidBecomeActive [*]applicationDidEnterBackground
Таким образом, в обоих случаях для всех трех переменных было установлено значение true, из-за чего я не мог отличить, перешло ли приложение в фоновый режим с помощью кнопки блокировки или кнопки «Домой»!ваш текст
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как отличить заблокированное состояние от фонового состояния приложения в быстрой iOS17?
Anonymous » » в форуме IOS - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-