2016-11-03 6 views
3

У меня возникла проблема после обновления до iOS 10 о push-уведомлении (я использую Swift3).iOS 10 push-уведомление, когда приложение завершено?

В нормальном случае, когда приложение открыто или приложение все еще в фоновом режиме все работает (может получать push-уведомление и обновлять данные в качестве моей логики).

Но когда приложение прекращено, я не могу обрабатывать push-уведомление, когда приложение становится активным.

Вот мой тестовый пример.

  1. Редактировать схему, чтобы ждать запуска исполняемого файла.
  2. Дважды нажмите кнопку «домой» и проведите по экрану.
  3. Запустите Xcode, подождите, пока не отобразится сообщение «Ожидание приложения».
  4. Тестирование отправки push-уведомления с сервера.
  5. Устройство получило push-уведомление.
  6. Запустить приложение из приложения значок.

После этого запуске приложения и didFinishLaunchingWithOptions называют, но launchOptions Визитки обнулить поэтому я не могу справиться толчок уведомление (Но если я открываю приложение с уведомлением в центре уведомления или всплывающее окно уведомления launchOptions не равно нулю)

У кого-нибудь есть идея проверить эту проблему?

Заранее спасибо.

ответ

-1

Попробуйте это:

Добавить делегат AppDelegate.

UNUserNotificationCenterDelegate 

И ..

//Called when a notification is delivered to a foreground app. 
@available(iOS 10.0, *) 
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { 
    print("User Info = ",notification.request.content.userInfo) 

    completionHandler([.alert, .badge, .sound]) 
} 

//Called to let your app know which action was selected by the user for a given notification. 
@available(iOS 10.0, *) 
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping() -> Void) { 
    print("ActionIdentifier = ",response.actionIdentifier) 
    print("User Info = ",response.notification.request.content.userInfo) 

    completionHandler() 
} 
Смежные вопросы