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:
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)
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.
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.
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