2016-09-29 91 views
0

假設我計劃3個本地通知,當用戶打開應用程序,三個通知具有以下狀態:IOS檢查顯示本地通知

a) not displayed yet 
b) displayed 
c) displayed and user taps on this notification and come back to app. 

如何檢測每一個?

回答

1

iOS 10引入了UIUserNotificationCenter,並且不推薦通過UIApplication安排和傳送本地通知,因此根據您使用的是哪種方法,存在一些差異。不推薦使用的方法仍然適用於iOS 10,因此如果您的iOS iOS10之前的目標是iOS,那麼您可以繼續使用這些方法,但會得到棄用警告。

對於情況一個,即尚未下發的通知,該通知的詳情,可通過對UIUserNotificationCenter實例調用getPendingNotificationRequests(iOS版10)或通過訪問你的應用程序的UIApplication實例scheduledLocalNotifications財產(在iOS 10之前)

對於情況b,已發送但用戶未與其交互的通知,沒有信息可用。

對於情況c,用戶點擊啓動應用程序的通知取決於應用程序的狀態以及用戶如何與通知進行交互。

  • 如果該應用沒有運行在前臺或懸浮,則應用程序被啓動,並且通知有效載荷經由localNotification鍵在選項字典
  • 如果該應用被暫停,然後輸送到application:didFinishLaunchingWithOptions:該通知被傳遞給didReceiveLocalNotification委託方法被調用。
  • 如果通知了自定義操作以及用戶點擊這些那麼application:handleActionWithIdentifier:forLocalNotification:completionHandler:應用程序的委託方法被調用
+0

之一是'UNUserNotificationCenter' –