2012-04-07 3 views
0

I rouge la méthode - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken est envoyée au délégué lorsque l'application s'enregistre avec Apple Push Service (APS). À un niveau bas, comment cela fonctionne-t-il? Est-ce que l'application essaie de l'appeler quand vous démarrez une application ET vérifie que l'appareil est connecté? Est-il appelé plusieurs fois jusqu'à ce que l'appareil soit connecté? Est-ce que cela cesse de fonctionner lorsque vous avez reçu votre jeton d'appareil?Comment fonctionne l'application: didRegisterForRemoteNotificationsWithDeviceToken: work

Merci d'avance.

Répondre

2

Le rappel didRegister est en fait une réponse directe à la méthode - (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types. Chaque fois que votre application démarre, il est de votre responsabilité de:

  1. Appel registerForRemoteNotificationTypes: sur votre objet d'application (UIApplication/NSApplication)
  2. Répondre à application:didRegisterForRemoteNotificationsWithDeviceToken et les application:didFailToRegisterForRemoteNotificationsWithError: callbacks.
  3. Envoyez le jeton de périphérique à n'importe quel service avec lequel vous communiquez afin qu'il puisse utiliser ce jeton à l'avenir.

Pour répondre spécifiquement à vos questions:

  1. Vous obtiendrez « didFailToRegister » si le réseau est inaccessible ou si vous n'avez pas correctement signé votre demande. L'erreur NSE qui revient est assez descriptive.
  2. Une fois que l'application a démarré et que vous vous êtes enregistré avec succès pour les notifications à distance, vous n'avez pas besoin de vous enregistrer à nouveau. Il n'y a pas de mal à le faire, mais il n'y a vraiment aucun intérêt. Si vous avez échoué, vous pouvez essayer de vous enregistrer à une date ultérieure (c'est-à-dire lorsque l'APNS est à nouveau accessible).
  3. Vous n'obtenir un rappel (succès ou échec)
+0

donc, si je comprends bien, la méthode est appelée une fois à tout moment le début de l'application et jusqu'à ce que l'application enregistrée avec succès pour les notifications à distance. Ai-je résumé, n'est-ce pas? – AsTheWormTurns

+0

Il est appelé une fois après avoir appelé 'enregistrer'. Vous pouvez appeler le registre 20 minutes, si vous le souhaitez vraiment. Appeler le registre au démarrage est juste une pratique standard. – Malaxeur

+0

Oh, merci (btw, j'ai ignoré je pourrais appeler le registre après 20 minutes). – AsTheWormTurns

Questions connexes