我正在編寫一個涉及初始屏幕驗證的應用程序,並允許在以後的屏幕上訪問敏感數據。當iPhone被鎖定時,無論是使用鎖定按鈕還是通過自動鎖定,我都希望應用程序自行關閉以作爲安全措施。有什麼辦法可以做到這一點?屏幕鎖定時如何關閉我的iPhone應用程序?
回答
你UIApplicationDelegate會收到
– applicationWillResignActive:
消息時屏幕鎖定,並
– applicationDidBecomeActive:
當它回來。但是,它也可能會在其他情況下收到這些消息(例如接聽電話,用戶在iOS 4.0及更高版本中關閉應用程序),但我不知道區分原因的方法。
在我看來,更好的用戶體驗就是在應用程序返回時再次彈出身份驗證。這樣用戶在手機解鎖時不會感到困惑,而且他們運行的應用程序已經神祕地退出。
如果我沒記錯,手機鎖定時應用程序會進入睡眠狀態。
由於多任務Apple的推出改變了行爲,因此您的應用程序在解鎖/切換到時會發送特定消息。
我建議只聽這個東西,然後再次要求認證。
我不認爲你可以退出你的應用程序(也不應該知道),我不知道任何應用程序,只是殺死自己...
對不起,我是沒有太具體的這裏,但我希望你現在就知道在哪裏去...
「關閉你的應用程序」違反了Apple的指導方針。雖然有些應用程序確實會這樣做,但這可能會導致您的應用程序被拒絕。在多任務處理之前,它違反了Apple的指導原則,現在由於多任務處理而變得更加重要。用戶體驗是當他們在鎖定或在另一個應用程序中回到手機和應用程序時,應用程序仍應該運行。要「關閉你的應用程序」會導致用戶認爲你的應用程序崩潰了,他們可能會爲此寫評論。
如果您希望在用戶離開時保護應用程序中的信息,那麼您應該查看UIApplicationDelegate Protocol Reference。特別是
applicationDidEnterBackground:
(你應該登錄用戶)和applicationDidBecomeActive:
(你應該讓用戶重新登錄)。
作爲最後一個音符,你可能想默認爲「自動退出」,但給用戶一個設置選項,讓他們登錄,如果他們的願望。不那麼難,少數人想要它可以利用這個設置。
我實際上已經在某個地方看到,iPhone應用程序本身就是不好的做法,但我有點不理會這是個人意見。我開始從這個問題的衆多回應中看到,除了粗魯和模棱兩可之外(用戶沒有任何方法可以說明受控退出和崩潰之間的區別),它實際上被蘋果禁止。 – Andrew 2011-05-25 22:40:03
要清除任何混淆,我只是在iOS 4.3的設備上運行一些測試。2:
當您啓動您的應用程序,你的應用程序被髮送: 應用中:didFinishLaunchingWithOptions: applicationDidBecomeActive:
當你點擊主頁按鈕,您的應用程序被髮送:
applicationWillResignActive:
applicationDidEnterBackground:
當你稍後重新啓動相同的應用,您的應用會被髮送:
applicationWillEnterForeground:
applicationDidBecomeActive:
當您點擊鎖定按鈕時,您的應用程序被髮送:
applicationWillResignActive:
當你解開,你的應用程序被髮送:
applicationDidBecomeActive:
當你一個電話,你的應用程序被髮送:
applicationWillResignActive:
如果你不迴應那個電話,你的應用被髮送了:
applicationDidBecomeActive:
當你一個電話,你的應用程序被髮送:
applicationWillResignActive:
如果你回答這個問題,你的應用程序被髮送:
applicationDidEnterBackground:
當你掛斷該呼叫,您的應用程序被髮送:
applicationWillEnterForeground:
applicationDidBecomeActive:
,當你得到我想說的applicationWillResignActive
:那麼你應該退出,去驗證身份,鎖定或丟棄您的機密信息,當你得到一個applicationDidBecomeActive:
然後重新進行身份驗證。那個人在發佈時被調用,從背景中返回並解鎖設備。
而且,這兩種方法可能會引起您關注,但他們並不真正幫助你感興趣的具體情況:
- (void)applicationProtectedDataWillBecomeUnavailable:(UIApplication *)application
- (void)applicationProtectedDataDidBecomeAvailable:(UIApplication *)application
- 1. Android - 應用程序不應該在屏幕鎖定上關閉
- 2. 當屏幕關閉時我的應用程序關閉
- 3. 鎖定屏幕不關閉
- 4. 從我的應用程序鎖定iphone主屏幕
- 5. Android - 在屏幕關閉或屏幕超時時關閉應用程序
- 6. 當應用程序加載時激活iPhone鎖定屏幕
- 7. 如何檢測iPhone屏幕是否鎖定(關閉)
- 8. 如何遠程鎖定iphone屏幕
- 9. 如何在iPhone屏幕鎖定後運行我的應用程序?
- 10. 當關閉屏幕時,應用程序強制關閉
- 11. 屏幕鎖定應用程序調用
- 12. 設備處於鎖定狀態且屏幕處於關閉狀態時,如何運行我的應用程序?
- 13. 如何在應用程序啓動時顯示鎖定屏幕?
- 14. Android應用程序鎖定屏幕
- 15. 鎖定應用程序到屏幕
- 16. iPhone屏幕鎖定通知到應用程序
- 17. 將應用程序從iPhone鎖定屏幕前景
- 18. 如何在我的flaslight應用程序運行時關閉屏幕?
- 19. 如何在屏幕鎖定時播放我的音樂應用程序?
- 20. 如何在屏幕鎖定時允許我們的應用程序運行
- 21. Android:屏幕關閉和鎖定通知?
- 22. WM6.5鎖定屏幕關閉GPS服務
- 23. 如何以編程方式密碼鎖定我的iphone屏幕?
- 24. 爲我的應用程序使用鎖定屏幕?
- 25. Iphone屏幕鎖定/關閉,然後沒有聲音
- 26. 計時器應用程序工作時,屏幕關閉ios
- 27. 避免Android應用程序(與Phonegap)關閉屏幕關閉
- 28. 爲什麼我的應用程序窗口會關閉屏幕?
- 29. Iphone屏幕鎖
- 30. 在我的應用程序上創建「鎖定屏幕」
謝謝,這是偉大的,知道這些發送的具體方法案例。 – Andrew 2011-05-25 22:33:43