Я работаю над push-уведомлением iOS.Я зарегистрировался и получил удаленное уведомление.Где мне искать, чтобы получать и обрабатывать эти уведомления?Моя конечная цель - позвонить по номеру UIViewController
, когда пользователь нажимает на уведомление.
В настоящее время я работаю на didReceiveRemoteNotification
с функцией завершениеHandler на Appdelegate
для достижения этой цели.didReceiveRemoteNotification
метод вызывается в симуляторе и сбрасывается до некоторого UIViewController
, когда пользователь нажимает на уведомление по желанию, но когда я запускаю свое приложение из TestFlight, я вижу, что didReceiveRemoteNotification
функция вызывается без какого-либо уведомления.Это поведение по умолчанию для запуска приложения.Таким образом, в основном, когда мое приложение убито и перезапущено, я получаю didFinishLaunchingWithOptions
, а затем сразу после этого вызывается функция didReceiveRemoteNotification
, даже если уведомление не получено.
// MARK: AppDelegate function
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if UserSession.sharedSession.isLoggedIn()
{
self.showTabbar()
}
else {
self.showLoginVC()
}
self.registerNotification()
return true
}
//MARK: delegate function
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
switch(application.applicationState){
case .active:
if (AppDelegate.topViewController() as? ChatRecentMessagesVC) != nil {
completionHandler(.noData)
return
}
else if (AppDelegate.topViewController() as? ChatVC) != nil {
// Here your topVC is MyViewController
completionHandler(.noData)
return
}
self.pushToRecentMessageVC()
break
case .inactive:
self.pushToRecentMessageVC()
break
case .background:
self.pushToContactListVC()
break
}
}
При запуске этого кода на testflight специально назапуск приложения я взял в RecentMessageVC.Каким-то образом функция didReceiveRemoteNotification
запускается и, в свою очередь, self.pushToRecentMessageVC()
вызывается при запуске приложения.Любая идея, что происходит в этом случае.Я не вижу никого такого поведения в своем коде.