2013-05-25 67 views
1

我正在使用UILocalNotifications第一次。主要處理重複通知。除了一件事之外,大多數都是有道理的。通過應用程序圖標打開UILocalNotification句柄?

Apple Documentation陳述了幾種情況,用於處理本地通知。

首先,當用戶「敲擊通知」時,應用程序的外部的情況下:如果通知是一個警報和用戶輕敲動作按鈕

(或者,如果設備是鎖定,拖動打開動作滑塊),啓動 應用程序。在 應用程序中:didFinishLaunchingWithOptions:方法應用程序 委託人可以通過使用 UIApplicationLaunchOptionsLocalNotificationKey鍵從傳入的 選項字典中獲取UILocalNotification對象。代表可以 檢查通知的屬性,並且如果通知 在其userInfo字典中包含自定義數據,則它可以訪問該數據並相應地處理該數據。

還規定了當用戶在應用程序中會發生什麼情況:

如果應用程序是最重要和明顯的,當系統提供 通知,顯示沒有警覺,沒有圖標是徽章,沒有聲音 播放。但是,應用程序:didReceiveLocalNotification:如果應用程序委託實現它,則調用 。將 UILocalNotification實例傳遞給此方法,並且 委託可以檢查其屬性或訪問 userInfo字典中的任何自定義數據。

在這兩種情況下,開發人員都可以訪問uilocalnotification,然後決定如何處理它。但是,在第三種情況下 - 當應用程序之外的用戶看到並忽略通知,然後啓動應用程序時,不會調用允許應用程序知道先前已觸發哪些通知的方法?

起初我以爲,這種說法是描述這種行爲,但現在我不知道:

在另一方面,如果本地通知只徽章 應用程序圖標,並響應用戶啓動應用程序 應用程序:didFinishLaunchingWithOptions:方法被調用,但 選項字典中不包含UILocalNotification對象。

我該如何處理第三種情況?我如何知道哪些本地通知已經解僱?我是否需要遍歷列表並自己檢查所有時間?有沒有更好的方法來完成這一點?

回答

0

您需要跟蹤通知的情況。我的意思是,因爲通知已經觸發,並且用戶由於通知而沒有啓動應用程序,也沒有在通知時運行您的應用程序,所以您需要檢查您的源代碼以驗證以前預定的通知開始日期已經過去了。

+0

感謝您的回答。經過額外的研究,我發現我的問題是這篇文章的副本: http://stackoverflow.com/questions/16469721/detect-unacknowledged-uilocalnotifications – dtmland

+0

嗨@dtmland你找到了解決這個問題.. .can請分享嗎? –

相關問題