【发布时间】:2016-12-20 18:43:12
【问题描述】:
我无法确定用户何时点击 iOS 10 上的用户推送通知。
到目前为止,我一直在使用-[UIApplicationDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:],它在何时调用
-
Case 1:应用处于活动状态,收到推送 -
Case 2:当用户点击收到的通知后启动应用程序时
这个方法cmets明确说
请注意,此行为与 application:didReceiveRemoteNotification: 形成对比,后者在这些情况下不会被调用,并且在实现此方法时也不会被调用。
所有这些都按预期工作。
现在 iOS 10 已弃用此委托方法并引入了我无法使用的 UserNotification 框架,因为我仍然以 iOS 8 和 9 为目标。
当我的应用在 iOS 10 上运行并在应用处于活动状态时收到推送 (Case 1),-[AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:] 被正确调用。
再次在 iOS 10 上,当用户通过点击通知 (Case 2) 启动应用程序时,此方法不会被调用。
我意识到,当我实现旧的 -[UIApplicationDelegate application:didReceiveRemoteNotification:] 时,它是在 Case 2 中调用的那个
在 iOS 8 和 9 上,在 Case 2 中调用的是 -[AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:] 方法。
这是否意味着我必须更新我的应用程序并为 iOS 10 实现旧的委托?
所以问题是,在不使用UserNotification 框架的情况下,在 iOS 10 上处理接收推送的用户交互的正确实现是什么。
干杯, 一月
【问题讨论】:
-
如果你为 iOS 9 编译了应用程序,它应该是向后兼容的,因此理论上你可以忽略弃用通知,因为你的目标不是 iOS 10,而是 iOS 9,这种方法应该可以工作.我现在面临同样的问题,并且已经有一个 openradar,我建议你密切关注它,因为这种行为似乎是 iOS 10 beta 版本中的一个错误。 openradar.me/27822963
-
iOS 10 beta 7 中仍未修复
-
相同的 iOS 10 beta 8 :/
-
iOS 10 GM 相同:/ 这是否意味着在 iOS 10 上我们必须使用在 iOS 10 上已弃用的回调????
-
需要使用UseNotification框架。我已经为 iOS 10 实现了代码:stackoverflow.com/questions/39490605/…
标签: push-notification push ios10