iOS: скрытие конфиденциальной информации на экране, когда приложение находится в фоновом режиме
Когда приложение переднего плана становится фоновым (например, нажимается кнопка "Домой"), как я могу изменить элементы на самом верхнем контроллере представления до того, как iOS сделает его снимок и запустит анимацию, чтобы показать следующий экран?
Я спрашиваю, потому что я пишу приложение, требующее соответствия HIPAA, и я обеспокоен тем, что снимок, который ОС делает для этой анимации, иногда содержит конфиденциальные данные, которые не должны быть видны даже в течение доли секунды, когда приложение становится более ранним.,
Я знаю, что у контроллеров представления есть методы жизненного цикла, такие как viewWillDisappear
это может быть полезно, но у меня есть много контроллеров, и я бы предпочел, чтобы в моем Делегате приложений было что-то для этого (например, путем добавления непрозрачного полноэкранного наложения UIImageView), вместо того, чтобы писать собственный код для этого в каждом последний контроллер.
Я пытался поместить код, генерирующий оверлей, в applicationWillResignActive
и я копался в документах Apple и Google, но это не работает. Я подозреваю, что снимок экрана будет сделан до того, как приложение сможет обновить экран.
Спасибо!
2 ответа
Я считаю, что ответ заключается не в том, чтобы заботиться о том, чтобы изменить то, что отображается на экране до начала фоновой анимации, а в том, чтобы просто изменить то, что отображается на экране, как только приложение входит в фон (т.е. внутри applicationDidEnterBackground:
в вашем приложении делегата.) Это решило мою проблему.
мой UIImageView
Идея оверлея сработала здесь, хотя я решил просто заскочить в контроллер корневого представления. Проще так. В моем корневом представлении нет конфиденциальной информации.
Вот как это выглядит:
-(void)applicationDidEnterBackground:(UIApplication *)application {
UINavigationController *navigationController =
(UINavigationController *)self.window.rootViewController;
[navigationController popToRootViewControllerAnimated:NO];
...
}
Не уверен в требованиях HIPAA к фонованию и, возможно, к тому, чтобы пользователь вошел в систему, чтобы кто-то еще мог его возобновить, но самый безопасный вариант - добавить ключ. UIApplicationExitsOnSuspend
с логическим значением YES
в info.plist
,
Это предотвратит полностью фоновый режим приложения и перезапускает его (возможно, запускает процедуру входа в систему) каждый раз, когда вы возвращаетесь к нему.
Большинство (если не все) приложений для мобильного банкинга, которые я тестировал, делают это по соображениям безопасности.