【发布时间】:2016-01-23 17:58:40
【问题描述】:
Facebook Messenger 应用程序在用户与推送通知警报消息交互后自动关闭 UIViewController。 我想知道他们如何检测到用户单击了警报视图上的一项操作。
我尝试过基于推送通知委托方法实现一个具体的解决方案:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError)
不幸的是,这并不可靠,尤其是对于已经注册推送通知的设备。
这是一个 youtube 视频,其工作流程由 Facebook 实现
https://www.youtube.com/embed/sCg3vYx9hlw
更新:
问题在于,当用户之前删除了应用程序并且已经注册了推送通知时,会调用此方法。在这种情况下 isRegisteredForRemoteNotifications 是假的,所以我要求 registerForRemoteNotifications。显示警报时 - 应用程序:didRegisterForRemoteNotificationsWithDeviceToken: 即使用户没有点击警报对话框中的任何选项,也会被调用。
【问题讨论】:
标签: ios swift uikit apple-push-notifications uialertview