我試圖確定UIApplication didReceiveLocalNotification:
的不同方案。如果用戶點擊該應用程序處於非活動狀態的通知,我應該將它們帶到相應的UI頁面。否則,如果用戶只是打開應用程序而不點擊通知,我應該讓他們留在他們離開的UI頁面。確定是否從調度或用戶交互中觸發了UILocalNotification
但是,由於我自己安排了UILocalNotification
,所以存在一些小問題。
[[UIApplication sharedApplication] scheduleLocalNotification:scheduledAlert];
所以每次發射的iOS的時候,它會調用相同的委託方法作爲回調時,我手動點擊狀態欄上的通知:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { ... }
我嘗試了一些棘手的黑客,如在應用程序處於非活動狀態時統計觸發時間,計數1表示iOS觸發,計數2表示用戶點擊,以及相對計數管理代碼。
但我不認爲這可能是最佳做法。我檢查了具有相同功能的iOS消息應用程序。如果您將應用置於非活動狀態,例如向下滾動狀態欄,則可以確定UILocalNotification
來自您的觸摸(並且將打開文本編輯模式),或者只是您返回到應用程序(保持以前的狀態)。
如果你們能讓我知道最佳解決方案在這裏,我將不勝感激!
謝謝!但是,你能更具體嗎?我認爲在這兩種情況下,它都會收到相同的通知 - 它將包含相同的字典。 – Pei 2013-05-25 00:04:09