2017-05-28 31 views
0

這裏是我的示例應用程序斯威夫特:不調用didReceiveRemoteNotification()

At the left you can see the app delegate, on the right my view controller

我有一些麻煩,這在其他應用程序,我試圖找出我做錯了什麼;它的工作原理是這樣的:

  1. 我按下一個按鈕,調度通知
  2. 我退出應用程序並關閉它
  3. 我等待通知到達
  4. 我通過Xcode的
  5. 重新啓動應用程序

的事情是:即使didReceiveRemoteNotification() - 函數應該叫,我還是開始這表明我,對於任何理由這種方法不會被調用應用程序時,得到錯誤的值。爲什麼?你可以幫我嗎?

+0

[didReceiveRemoteNotification的可能的複製不叫,iOS 10](https://stackoverflow.com/questi ons/39382852/didreceiveremotenotification-not-called-ios-10) – Honey

+0

您是否計劃本地通知? – Bilal

+0

請勿將代碼發佈爲圖片。發佈文字。 – vadian

回答

2

方法didReceiveRemoteNotification()不應該被稱爲本地通知......它只適用於遠程通知(推送通知)。

使用UNUserNotificationCenterDelegate委託方法

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping() -> Void) 

看到這裏的細節https://stackoverflow.com/a/44142742/1825618

獲取發送的通知(目前只在那些被顯示在通知中心)

UNUserNotificationCenter.current().getDeliveredNotifications { 
    (notifications) in 
    // your code 
} 
+0

謝謝!但是我使用哪個函數呢? –

+0

查看更新的答案。 – Bilal

+0

已經嘗試過......現在我的問題是,如果我通過點擊應用程序圖標訪問該應用程序,該功能無法正常工作。只有當我通過通知本身訪問應用程序時,它纔有效。你知道我是否可以普遍檢測是否有通知到達? –