Когда мое приложение не запущено и пользователь нажимает на уведомление в центре уведомлений, вызывается функция didFinishLaunchingWithOptions
, когда push-данные передаются в словарь launchOptions
.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UNUserNotificationCenter.current().delegate = self
//do stuff with push data in launchOptions dictionary
}
, но такжефункция userNotificationCenter
didRecieve
называется
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
log.info()
let state = UIApplication.shared.applicationState
print(state)
if UIApplication.shared.applicationState != .active {
log.debug("exiting because app is not in active state")
return
}
let userInfo = response.notification.request.content.userInfo
//do stuff with userInfo
completionHandler()
}
В функции didRecieve
как я могу узнать, что приложение было запущено, а приложение уже работало в фоновом режиме, когда пользователь нажал на уведомление?
application
является активным , когда приложение находится на переднем плане, но неактивно , когда приложение находится в фоновом режиме или было запущено с push-адреса,поэтому я не могу понять разницу.
* * * * * * * * * * * * * * * * * application didRecieveRemoteNotification
выглядит идеально, но он вызывается только тогда, когда я посылаю тихий толчок, но мои нажатия не молчат.