什么时候调用didRegisterForRemoteNotificationsWithDeviceToken?

jwl*_*jwl 29 notifications apple-push-notifications ios

关于didRegisterForRemoteNotificationsWithDeviceToken有很多问题,但他们都回避了一个非常直接的问题,我似乎无法找到确切的答案.

对于以所有其他方式正确设置通知并具有适当网络连接的应用程序:何时调用didRegisterForRemoteNotificationsWithDeviceToken?一些可能的选择可能是:

  1. 每次应用程序启动时
  2. 只有在初始提示用户接受推送通知后
  3. 别的什么?

Abd*_*lal 29

在UIApplication中调用此方法后,应用程序委托将在成功注册远程通知后调用该方法:

(空隙)registerForRemoteNotificationTypes:(UIRemoteNotificationType)类型

根据:http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html

发送此消息时,设备将使用Apple Push Service启动注册过程.如果成功,则应用程序委托在应用程序中接收设备令牌:didRegisterForRemoteNotificationsWithDeviceToken: method; 如果注册不成功,则通过应用程序通知委托:didFailToRegisterForRemoteNotificationsWithError:方法.如果应用程序委托收到设备令牌,它应该与其提供者连接并将令牌传递给它.

现在,进一步详细说明,通常应用程序将在您的应用程序委托中的didFinishLaunchingWithOptions:(NSDictionary*)launchOptions中调用registerForRemoteNotificationTypes.因此,应用程序:didRegisterForRemoteNotificationsWithDeviceToken通常在应用程序启动后立即调用.

编辑:应用程序:didRegisterForRemoteNotificationsWithDeviceToken仍然会在第一个之后调用子句注册.

  • 你确定即使你已经注册了didRegisterForRemoteNotifications也会被调用吗?我正在尝试在我的应用程序中实现推送通知,并且registerForRemoteNotifications第一次工作得非常漂亮,但现在后续尝试都没有执行成功或失败回调. (4认同)
  • 当我打开Settings应用程序中的"Allow Notifications"选项时,我也看到didRegisterForRemoteNotificationsWithDeviceToken被调用.我关闭了"允许通知",启动应用程序,不要调用registerForRemoteNotifications,返回设置应用程序,打开"允许通知",当我切换回我的应用程序时,调用didRegisterForRemoteNotificationsWithDeviceToken. (4认同)

roo*_*117 10

当应用程序首次运行时,它将询问用户是否允许远程通知.如果他们说是,那么它将在当时触发didRegisterForRemoteNotificationsWithDeviceToken,并且每次在应用程序首次打开时触发此功能.如果他们拒绝,那么除非他们进入设置并在应用程序上允许通知,否则不会被解雇.