And*_*rew 7 iphone objective-c auto-lock
我正在编写一个涉及初始屏幕上的身份验证的应用程序,并允许在以后的屏幕上访问敏感数据.当iPhone被锁定时,无论是使用锁定按钮还是通过自动锁定,我都希望应用程序将自己关闭作为安全措施.有没有办法可以做到这一点?
bob*_*vil 11
您的UIApplicationDelegate将收到
– applicationWillResignActive:
Run Code Online (Sandbox Code Playgroud)
屏幕锁定时的消息,和
– applicationDidBecomeActive:
Run Code Online (Sandbox Code Playgroud)
当它回来.但是,它也可以在其他情况下接收这些消息(例如接听电话,用户在iOS 4.0及更高版本上关闭应用程序),我不知道区分原因的方法.
在我看来,更好的用户体验是在应用程序恢复时再次弹出身份验证.这样,当手机解锁时,用户不会感到困惑,并且他们运行的应用程序已经神秘地退出.
为了消除任何困惑,我在iOS 4.3.2的设备上运行了一些测试:
当您启动应用程序时,您的应用程序将被发送:application:didFinishLaunchingWithOptions:applicationDidBecomeActive:
当您点击主页按钮时,您的应用会被发送:
applicationWillResignActive:
applicationDidEnterBackground:
Run Code Online (Sandbox Code Playgroud)
当您稍后重新启动相同的应用时,您的应用会被发送:
applicationWillEnterForeground:
applicationDidBecomeActive:
Run Code Online (Sandbox Code Playgroud)
当您点击锁定按钮时,您的应用会被发送:
applicationWillResignActive:
Run Code Online (Sandbox Code Playgroud)
解锁后,您的应用会被发送:
applicationDidBecomeActive:
Run Code Online (Sandbox Code Playgroud)
当您接到电话时,您的应用会收到:
applicationWillResignActive:
Run Code Online (Sandbox Code Playgroud)
如果您没有接听该电话,您的应用会收到:
applicationDidBecomeActive:
Run Code Online (Sandbox Code Playgroud)
当您接到电话时,您的应用会收到:
applicationWillResignActive:
Run Code Online (Sandbox Code Playgroud)
如果您接听该电话,您的应用会收到:
applicationDidEnterBackground:
Run Code Online (Sandbox Code Playgroud)
挂断电话时,您的应用会被发送:
applicationWillEnterForeground:
applicationDidBecomeActive:
Run Code Online (Sandbox Code Playgroud)
我会说当你得到一个applicationWillResignActive
:然后你应该注销,取消验证,锁定或丢弃你的机密信息,然后当你得到一个applicationDidBecomeActive:
然后重新验证.那个人在启动时被调用,从后台返回并解锁设备.
此外,这两种方法可能对您有意义,但它们并不能真正帮助您感兴趣的特定情况:
- (void)applicationProtectedDataWillBecomeUnavailable:(UIApplication *)application
- (void)applicationProtectedDataDidBecomeAvailable:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3078 次 |
最近记录: |