web-dev-qa-db-fra.com

Quand est-ce que didRegisterForRemoteNotificationsWithDeviceToken est appelé?

Il y a beaucoup de questions sur didRegisterForRemoteNotificationsWithDeviceToken, mais toutes échappent à une question très directe à laquelle il me semble impossible de trouver une réponse exacte.

Pour une application correctement configurée pour les notifications de toutes les manières et disposant d'une connectivité réseau appropriée: quand appelle-t-RegisterForRemoteNotificationsWithDeviceToken? Certains choix possibles pourraient être:

  1. Chaque fois que l'application démarre
  2. Seulement après l'invitation initiale à l'utilisateur d'accepter les notifications Push
  3. Autre chose?
27
jwl

Le délégué de l'application appelle la méthode après l'enregistrement de la notification à distance après l'appel de cette méthode dans votre application UIA:

(void) registerForRemoteNotificationTypes: types (UIRemoteNotificationType)

Selon: http://developer.Apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html

Lorsque vous envoyez ce message, l'appareil lance le processus d'enregistrement avec le service Apple Push. S'il réussit, le délégué d'application reçoit un jeton de périphérique dans la méthode application: didRegisterForRemoteNotificationsWithDeviceToken:; Si l’enregistrement échoue, le délégué en est informé via la méthode application: didFailToRegisterForRemoteNotificationsWithError:. Si le délégué de l'application reçoit un jeton de périphérique, il doit se connecter à son fournisseur et lui transmettre le jeton.

Maintenant, pour aller plus loin, une application appelle normalement registerForRemoteNotificationTypes dans votre didFinishLaunchingWithOptions: (NSDictionary *) launchOptions dans votre délégué d'application. Et par conséquent, l'application : didRegisterForRemoteNotificationsWithDeviceToken est généralement appelée quelques instants après le lancement de l'application.

Edit: L'application: didRegisterForRemoteNotificationsWithDeviceToken est toujours appelée pour l'enregistrement d'un sous-séquent après le premier.

28
Abd Sani Abd Jalal

Lorsque l'application est lancée pour la première fois, il demande à l'utilisateur s'il autorise les notifications à distance. S'ils répondent par l'affirmative, l'application déclenchera didRegisterForRemoteNotificationsWithDeviceToken à chaque fois et à chaque fois que cette fonction sera activée à la première ouverture de l'application. S'ils disent non, il ne sera pas renvoyé, sauf s'ils sont entrés dans les paramètres et ont autorisé les notifications sur l'application.

8
rooster117

Il peut y avoir plusieurs raisons, cochez quelques raisons 

  • Si vous exécutez l'application dans le simulateur, l'application : DidFailToRegisterForRemoteNotificationsWithError: method Sera appelée, car les notifications Push ne sont pas prises en charge dans le simulateur

  • Vérifiez votre connexion Internet deice sinon connectez-le.

Pour plus d'informations, consultez Lien

0
Denny