Note technique TN2265: Dépannage des notifications push
La première fois qu'une application activée par push s'enregistre pour les notifications push, iOS demande à l'utilisateur s'il souhaite recevoir des notifications pour cette application. Une fois que l'utilisateur a répondu à cette alerte, celle-ci n'est plus présentée à moins que l'appareil ne soit restauré ou que l'application ait été désinstallée pendant au moins un jour.
Si vous souhaitez simuler une première exécution de votre application, vous pouvez laisser l'application désinstallée pendant une journée. Vous pouvez réaliser ce dernier sans attendre réellement un jour en réglant l'horloge système d'un jour ou plus en avant, en éteignant complètement l'appareil, puis en le rallumant.
Mise à jour: comme indiqué dans les commentaires ci-dessous, cette solution a cessé de fonctionner depuis iOS 5.1. Je vous encourage à déposer un bogue auprès d'Apple afin qu'ils puissent mettre à jour leur documentation. La solution actuelle semble être de réinitialiser le contenu et les paramètres de l'appareil.
Mise à jour: la note technique a été mise à jour avec de nouvelles étapes qui fonctionnent correctement à partir d'iOS 7.
- Supprimez votre application de l'appareil.
- Éteignez complètement l'appareil et rallumez-le.
- Accédez à Paramètres> Général> Date et heure et réglez la date avant un jour ou plus.
- Éteignez à nouveau complètement l'appareil et rallumez-le.
MISE À JOUR à partir d'iOS 9
Le simple fait de supprimer et de réinstaller l'application réinitialisera l'état de la notification à notDetermined
(ce qui signifie que des invites apparaîtront).
Merci à la réponse de Gomfucius ci-dessous:
https://stackoverflow.com/a/33247900/704803
Une autre solution juste pour tester cela consiste simplement à modifier votre identifiant de bundle. N'oubliez pas de le modifier une fois que vous avez terminé!
la source
Sur iOS 9.0.2, j'obtiens «l'alerte de notification push d'enregistrement» chaque fois que je supprime l'application et la réinstalle. Cela est vrai à la fois pour les téléchargements de production AppStore et pour le mode adhoc.
MISE À JOUR: Il est confirmé que cela fonctionne pour iOS 9.x
la source
Comme déjà noté, l'approche de réinitialisation de l'état de notification pour une application sur un appareil est modifiée pour iOS5 une version plus récente.
Cela fonctionne pour moi sur iOS6:
Cependant, cela ne fera que réapparaître l'invite initiale - cela ne supprimera aucun autre élément lié à l'état push.
la source
Le plist: /private/var/mobile/Library/RemoteNotification/Clients.plist
... contient les clients enregistrés pour les notifications push. La suppression de l'entrée de votre application entraînera la réapparition de l'invite
la source
Le faire par programme semble fonctionner pour moi à chaque fois. J'ai une version avec la ligne suivante non commentée:
Je l'exécute chaque fois que je souhaite me désinscrire de PN. Vous devrez peut-être mettre fin à l'application explicitement à partir de la liste des récents et jouer avec le Centre de notifications dans l'application Paramètres pour bien faire les choses.
En outre, l'invite de l'interface utilisateur demandant à l'utilisateur de s'inscrire à PN peut ne pas s'afficher. Je ne sais pas si a été désactivé dans l'une des versions récentes d'iOS.
la source
Comme l'a dit ianolito, fixer la date devrait fonctionner:
J'ai remarqué que sur mon appareil (iPhone 4, iOS 6.1.2), le réglage de l'horloge système d' un jour ou même de quelques jours ne fonctionnait pas pour moi. J'ai donc mis la date en avant d' un mois , puis cela a fonctionné et mon application a de nouveau affiché l'invite de notification.
J'espère que cela aidera tout le monde, cela peut être un peu douloureux!
la source
Je suis d'accord avec micmdk .. J'avais un environnement de développement configuré avec des notifications push et j'avais besoin d'un moyen de réinitialiser mon téléphone pour qu'il ressemble à une installation initiale ... et seules ces étapes précises ont fonctionné pour moi ... nécessite DEUX redémarrages de l'appareil:
De APPLE TECH DOC:
Réinitialisation de l'alerte d'autorisations de notifications push sur iOS La première fois qu'une application activée par push s'enregistre pour les notifications push, iOS demande à l'utilisateur s'il souhaite recevoir des notifications pour cette application. Une fois que l'utilisateur a répondu à cette alerte, celle-ci n'est plus présentée à moins que l'appareil ne soit restauré ou que l'application ait été désinstallée pendant au moins un jour.
Si vous souhaitez simuler une première exécution de votre application, vous pouvez laisser l'application désinstallée pendant une journée. Vous pouvez réaliser ce dernier sans réellement attendre un jour en suivant ces étapes:
Supprimez votre application de l'appareil.
Éteignez complètement l'appareil et rallumez-le.
Accédez à Paramètres> Général> Date et heure et réglez la date avant un jour ou plus.
Éteignez à nouveau complètement l'appareil et rallumez-le.
la source
Je me suis posé des questions à ce sujet dans le passé et suis arrivé à la conclusion que ce n'était pas en fait un cas de test valide pour mon code. Je ne pense pas que le code de votre application puisse réellement faire la différence entre le fait que quelqu'un refuse les notifications la première fois ou la désactive ultérieurement à partir des paramètres de notification de l'iPhone. Il est vrai que l'expérience utilisateur est différente, mais cela est caché dans l'appel à registerForRemoteNotificationTypes.
L'appel de unregisterForRemoteNotifications ne supprime pas complètement l'application des paramètres de notification - bien que cela supprime le contenu des paramètres de cette application. Ainsi, cela ne provoquera toujours pas la présentation de la boîte de dialogue une deuxième fois à l'utilisateur la prochaine fois que l'application s'exécutera (du moins pas sur la v3.1.3 avec laquelle je teste actuellement). Mais comme je l'ai dit plus haut, vous ne devriez probablement pas vous en préoccuper.
la source
La même note technique que celle mentionnée dans la réponse acceptée ( TN2265 - Dépannage des notifications push) a depuis été mise à jour avec une solution pour iOS 5 et supérieur.
En bref: créez une sauvegarde et restaurez-la à chaque fois.
la source
La note technique d'Apple décrit également que vous pouvez restaurer l'appareil pour réinitialiser la boîte de dialogue de notification push.
Il ne dit pas que vous pouvez également utiliser l'option "Général -> Réinitialiser -> Effacer tout le contenu et les paramètres" sur l'appareil lui-même (iOS 5.x).
la source
En plus de la réponse d'ianolito.
J'ai eu le même problème avec une application que j'ai téléchargée il y a un an et j'ai refusé initialement la notification push. Maintenant que je veux des notifications push, ces étapes ont fonctionné pour moi sur iOS 7 beta. Je ne sais pas exactement quel (s) point (s) l'a déclenché.
Dieu merci, je n'ai pas eu à "Effacer tout le contenu et les paramètres". Peut-être que cela aidera quelqu'un.
la source
J'ai récemment rencontré un problème similaire avec l'application React-native. La version iPhone OS était 13.1 J'ai désinstallé l'application et essayé d'installer l'application et j'ai remarqué que les autorisations de localisation et de notification n'étaient pas demandées.
En vérifiant les paramètres, je pouvais voir que mon application était activée pour l'emplacement (à partir de l'installation précédente), mais il n'y avait pas d'entrée correspondante contre la notification. J'ai essayé de désinstaller et de redémarrer sans régler l'heure, cela n'a pas fonctionné. Btw, j'ai également essayé de télécharger l'application Appstore, toujours le même comportement.
Le problème n'a été résolu qu'après le réglage de l'heure de l'appareil.
la source
Après des heures de recherche et sans succès avec les suggestions ci-dessus, cela a fonctionné comme un charme pour 3.x +
la source