Как определить, что пользователь разблокировал устройство, но не отображается, если центр уведомлений просто отображается как Dropbox и 1Password?
Я хочу реализовать экран пароля в моем приложении. Приложения Dropbox и iPhone от 1Password делают это. Когда вы выходите и возвращаетесь, оно блокирует приложение, и это также работает, если приложение активно, а вы заблокируете устройство и разблокируете его - появится экран пароля.
Моя мысль была использовать applicationDidBecomeActive
но это срабатывает в случае сбоев, например, просто потянув Notification Center, который не должен блокировать приложение, равно как и в Dropbox или 1Password.
Как они это делают?
1 ответ
Я полагаю, что они на самом деле используют атрибуты kSecAttrAccessible служб Keychain, возможно, kSecAttrAccessibleWhenUnlocked в этом случае, чтобы получить такое поведение в Dropbox и 1Password.
https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/
Я не думаю, что вы сможете получить эту информацию напрямую через методы делегата приложения. Вы захотите объединить то, что вы знаете о том, как приложение становится активным из делегата приложения, с атрибутами безопасности, доступными для цепочки для ключей.