registerForRemoteNotifications doit il être appelé à chaque lancement ?
J'implémente les notifications push dans mon app.
Côté serveur, EsayApns fonctionne plutôt bien.
Par contre, dans mon code, dans l'app delegate, j'appelle systématiquement registerForRemoteNotifications
Je pensais qu'une fois que l'utilisateur avait accepté, cet appel n'aurait plus d'effet.
Or, ça déclenche toujours la méthode :
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken
Et du coup, ça renvoie le token au serveur. Pas gênant en soi (easyApns le gère) mais je me dis qua c'est inutile.
La bonne pratique est elle de tracer le premier lancement en enregistrant une pref lorsque l'utilisateur accepte la première fois ? Et comme ça, ne plus appeler le "register" les fois suivantes ?
Merci
Réponses
Oui
Merci
En tout cas il me semble avoir déjà lu que ça pouvait arriver (même si c'était dans de rares occasions) et donc que c'était quand même mieux de register à chaque fois.
ah ok. Pas bête
Oui le device token peut changer. La solution proposée par Ali est d'ailleurs la bonne. Vérifier si le token est le même systématiquement, si ce n'est plus le cas renvoyer une requête pour sauver le nouveau jeton.
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW1
Donc en + d'après la doc, appeler "registerForRemoteNotifications" à chaque fois ne fait *pas forcément* une requête à l'APNS, c'est déjà optimisé pour appeler alors directement la méthode de delegate s'il n'a pas besoin d'en redemander un nouveau, t'as même pas à te poser la question de ton côté.
En tout cas merci Magiic pour avoir retrouvé la référence
C'est normal