Почему запрашивается разрешение на запуск камеры / микрофона для приложения DidBecomeActive? - PullRequest
0 голосов
/ 11 декабря 2018

Я взял на себя проект, который обрабатывает, какой экран показывать первым, в функции «applicationDidBecomeActive» внутри AppDelegate.Это вызывает проблемы, потому что всякий раз, когда приложение запрашивает разрешение иногда, но не все, оно запускает этот блок кода и отправляет пользователя на неправильный экран.Я не уверен, что делать, так как я никогда не сталкивался с этим раньше.Любые идеи, почему это происходит или способы обойти это?Однако я попытался добавить переменную flag, которая, похоже, не работает согласованно, потому что, похоже, она не установлена ​​до запуска applicationDidBecomeActive.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Я взял на себя проект, который обрабатывает, какой экран показывать первым в функции "applicationDidBecomeActive" внутри AppDelegate ... Есть идеи, почему это происходит, или способы обойти это?

Простой ответ: не делайте эту работу в applicationDidBecomeActive().Как вы видели, приложение может стать неактивным, а затем снова активным, пока приложение остается на переднем плане, так что это неправильный переход состояния для того, что вы делаете.Определите переходы состояния приложения, где вы действительно хотите выбрать экран.Например, вы можете захотеть сделать это при запуске приложения, а также при его переходе с фона на передний план, чтобы вы могли использовать application(_:didFinishLaunchingWithOptions:) и applicationWillEnterForeground(_:).(Очевидно, что вы не хотите помещать один и тот же код в обоих местах, поэтому поместите его в отдельный метод и просто вызовите его из этих двух методов.)

У Apple есть документ, посвященный этой самой теме: Управление жизненным циклом вашего приложения .На справочной странице UIApplicationDelegate также содержится много информации о состояниях приложений.Оба документа содержат полезные диаграммы перехода состояний и описания того, что означают различные состояния.

0 голосов
/ 11 декабря 2018

Когда отображаются системные уведомления, такие как «Разрешения», приложение отправляется в фоновый режим или становится «неактивным».Когда уведомление о разрешении отклоняется, приложение снова становится «активным».Это объяснило бы, почему сработалBecomeActive.

https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622956-applicationdidbecomeactive

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...