升级到iOS 10后,我遇到了关于推送通知的问题(我使用的是Swift3)。
正常情况下,当应用程序打开或应用程序仍处于后台时,一切都可以正常工作(可以接收推送通知并更新数据作为我的逻辑)。
但是当应用程序终止时,我无法在应用程序变为活动状态时处理推送通知。
这是我的测试用例。
在应用程序启动之后, didFinishLaunchingWithOptions被调用但是launchOptions远离空所以我无法处理推送通知(但是如果我从通知中心的通知中打开应用程序或弹出通知,则launchOptions不为null )
有人有任何想法检查这个问题吗?
提前谢谢。
答案 0 :(得分:0)
您需要通过点击通知栏中的推送通知来打开该应用程序。
从图标启动应用程序时,launchOptions将为零。从推送通知启动将为您提供launchOptions。
https://developer.apple.com/reference/uikit/uiapplicationdelegate/1622921-application
答案 1 :(得分:-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()
}