2016-05-12 27 views
3

我想在我的应用程序上实现密码屏幕。 Dropbox和1Password的iPhone应用程序可以做到这一点。当你离开并回来时,它会锁定应用程序,这也适用于应用程序处于活动状态并锁定设备并解锁它 - 密码屏幕将显示。如何检测用户是否解锁设备,但是如果通知中心仅显示为Dropbox和1Password,则不会如此?

我的想法是使用applicationDidBecomeActive,但这会在asinine情况下触发,例如只是拉下Notification Center,它不应该锁定应用程序,Dropbox或1Password也不会。

他们是如何完成这项工作的?

+1

我建议实施所有'UIApplicationDelegate'方法并为每个方法添加日志语句。然后尝试所有各种操作组合,并查看您获得的日志输出。看看每种情况有什么不同。 – rmaddy

回答

0

我相信他们实际利用的是Keychain服务的kSecAttrAccessible属性,在这种情况下可能是kSecAttrAccessibleWhenUnlocked,以便在Dropbox和1Password中获得此行为。

https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/

我不认为你可以直接获得通过应用程序委托的方法的信息。您需要将应用程序委托生效的应用程序与钥匙串可用的安全属性结合起来。

相关问题