Как в iOS Swift отличить заблокированный экран при открытии приложения от фонового состояния приложения, когда телефон рIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как в iOS Swift отличить заблокированный экран при открытии приложения от фонового состояния приложения, когда телефон р

Сообщение Anonymous »


На самом деле я хочу различать два состояния:
[*]
Во-первых, когда приложение было открыто и пользователь нажал кнопку блокировки, мобильный телефон заблокирован, и приложение перешло в фоновый режим.
[*]
Во-вторых, когда приложение было открыто и пользователь нажал кнопку «Домой» или провел по ней вверх, приложение перешло в фоновый режим, но телефон остался разблокированным.

В обоих случаях приложение переходит в фоновый режим, поэтому я не могу определить, перешло ли оно в фоновый режим с помощью кнопки блокировки или простого смахивания кнопки «Домой».

Я попробовал комбинацию этих трех методов жизненного цикла приложения в файле 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, из-за чего я не мог отличить, перешло ли приложение в фоновый режим с помощью кнопки блокировки или кнопки «Домой»!ваш текст
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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