objectif c - Détecter lorsque l'utilisateur de modifier l'application de paramètres de notifications
J'ai besoin de toujours connaître les options à l'utilisateur de choisir sur la poussée des paramètres de notification.
(Les options sont en alerte, son et badges)
Alors, quand mon application se lance j'appelle:
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
et de détecter ce que l'utilisateur a choisi.
Mais comment puis-je détecter si l'utilisateur de modifier les paramètres plus tard au cours de l'application du temps de la vie?
Est-il un délégué méthode appelée lorsqu'un changement se produire avec ces paramètres?
OriginalL'auteur Eyal | 2012-04-17
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de délégué. Vous avez besoin d'interroger le
UIApplication
propriétéenabledRemoteNotificationTypes
périodiquement, par exemple dansapplicationDidBecomeActive:
.Pour plus de détails consulter ces réponses:
Déterminer sur l'iPhone si l'utilisateur a activé les notifications push
Afficher Dans l'Écran de Verrouillage et enabledRemoteNotificationTypes - iOS5
Edit:
Si vous avez besoin de réinitialiser le pousser paramètre de notification et l'autorisation d'alerte, avoir un regard sur le Apple note technique TN2265. Dans la section "Réinitialisation des Notifications Push Autorisations d'Alerte sur iOS" ils expliquent comment faire pour réinitialiser le réglage sur iOS. Toutefois, de nombreux développeurs se plaignent que la procédure ne fonctionne pas. Vous ne savez pas si ce lien de travail, vous aurez besoin d'avoir accès à la Pomme forum, mais il est l'un des threads sur ce problème précis.
J'ai été me demandais si peut-être que Apple a supprimé la boîte de dialogue autorisation en iOS 5.1. Sinon, pourquoi auraient-ils besoin de l'application pour afficher l'alerte? Selon AppStore examen des lignes directrices:
5.3 Applications qui envoient des Notifications Push sans d'abord obtenir le consentement de l'utilisateur sera rejetée
Par exemple de Chemin d'accès de l'application demande à l'utilisateur d'opter pour de notification push dans le milieu de la chanson, pas lorsque l'application démarre pour la première fois.
Pas sûr de ce que devrait être le but de l'invite de toute façon que l'application ne permet pas d'interroger l'état du paramètre de notification. En particulier, l'application peut vérifier les types de notification (à l'aide de
enabledRemoteNotificationTypes
) sont activés mais PAS si les notifications push pour une application particulière sont activées ou désactivées (le Centre de Notification, interrupteur on/OFF en haut). Au moins, c'est le comportement de l'iOS 5.1. Même si l'utilisateur désactive les notifications de cette application, l'application peut encore vous inscrire pour les notifications push (à l'aide deregisterForRemoteNotificationTypes
) et recevront un APN jeton.J'ai édité la réponse à inclure certains des liens que peut-être utile. Cependant, de nombreux développeurs se plaignent que la procédure décrite par Apple ne fonctionne pas. Je n'ai jamais vu la boîte de dialogue autorisation lors du développement de mon application, de sorte que je n'ai même pas su qu'il existait jusqu'à ce que la lecture de certains articles à partir d'autres développeurs.
La dernière partie n'est pas vrai, au moins sur iOS 7, enabledRemoteNotificationTypes est pour votre application et seulement si l'utilisateur de régler les notifications à aucun de vous ne l'receibe APNs jeton.
enabledRemoteNotificationTypes me donne toujours UIRemoteNotificationTypeNone. N'importe quelle raison ?
Si vous voyez que dans le Simulateur, puis que c'est normal. Les notifications Push ne fonctionne pas dans le Simulateur afin de ne pas obtenir un jeton
OriginalL'auteur Amiramix
Vérifier si votre application devient active, non seulement lors du lancement.
OriginalL'auteur Nick Bull
C'est un exemple que lorsque est mis en œuvre par le biais de UrbanAirship. Chaque fois que l'utilisateur opt-in/opt-out pour pousser délégué suivant les incendies et avec la méthode ci-dessous ce que vous pouvez vérifier pour (OUI/NON).
Même effet peut être obtenu avec UIApplication délégué si vous n'utilisez pas UrbanAirship.
OriginalL'auteur Venu Gopal Tewari