iOS - Activer les Services de Localisation avec des Paramètres et des boutons Annuler -Comment puis-je Capturer Annuler cliquez sur le bouton
Lorsque l'utilisateur lance l'application pour la première fois et de tentatives de connexion, ils sont invités iOS de dialogue "Activer les Services de Localisation".
J'ai besoin de saisir lorsque l'utilisateur clique sur "annuler". Est-il un Notification
envoyé? Si oui, quel est son nom? J'ai été incapable de le localiser.
La CLAUthorizationStatus
est kCLAuthorizationDenied
lorsque les Services de Localisation sont Désactivés OU l'utilisateur a cliqué sur "Ne pas autoriser". Lorsque l'utilisateur clique sur "Annuler", il ne déclenche pas l' authorizationChange
événement. Lorsque l'utilisateur clique sur "Annuler", l'application se bloque.
peut vous de bien vouloir ajouter quelques parties pertinentes de votre code pour nous permettre de mieux comprendre ce qui se passe? Merci
Je suis tout simplement en demandant comment faire pour capturer l'événement CLICK du bouton d'annulation de la commande "Activer les Services de Localisation" boîte de dialogue. Il n'y a pas de code à présent.
Si l'utilisateur clique sur annuler, cela signifie qu'il ne veux pas décider à ce moment, alors l'état doit être le même que lorsque l'application démarre (pas défini). Si vous voulez de l'aide pour résoudre le hang-quand écoutes-annulation de la question que vous avez pour nous montrer un peu de code dans le but de reproduire l'erreur
Je comprends parfaitement POURQUOI l'application est Suspendue. Je suis SEULEMENT intéressé à SAVOIR comment capturer le bouton ANNULER cliquez sur. L'utilisateur ne peut pas décider, mais à mon application se soucie de l'UTILISATEUR de cliquer sur annuler. À ce stade, je n'ai pas trouvé une réponse sur mon propre. Il semble que le bouton "Annuler" ne se déclenche pas toute sorte d'événement ou de la notification de l'observer.
S'il vous plaît être gentil. Les gens ne sont pas là parce qu'ils ont pour vous aider, mais parce que l'envie de vous aider. Ne pas démotiver. CRIER ne pas aide, vraiment. Et, d'ailleurs, c'est vraiment pas clair à partir de votre question que vous savez pourquoi votre application est suspendue.
Je suis tout simplement en demandant comment faire pour capturer l'événement CLICK du bouton d'annulation de la commande "Activer les Services de Localisation" boîte de dialogue. Il n'y a pas de code à présent.
Si l'utilisateur clique sur annuler, cela signifie qu'il ne veux pas décider à ce moment, alors l'état doit être le même que lorsque l'application démarre (pas défini). Si vous voulez de l'aide pour résoudre le hang-quand écoutes-annulation de la question que vous avez pour nous montrer un peu de code dans le but de reproduire l'erreur
Je comprends parfaitement POURQUOI l'application est Suspendue. Je suis SEULEMENT intéressé à SAVOIR comment capturer le bouton ANNULER cliquez sur. L'utilisateur ne peut pas décider, mais à mon application se soucie de l'UTILISATEUR de cliquer sur annuler. À ce stade, je n'ai pas trouvé une réponse sur mon propre. Il semble que le bouton "Annuler" ne se déclenche pas toute sorte d'événement ou de la notification de l'observer.
S'il vous plaît être gentil. Les gens ne sont pas là parce qu'ils ont pour vous aider, mais parce que l'envie de vous aider. Ne pas démotiver. CRIER ne pas aide, vraiment. Et, d'ailleurs, c'est vraiment pas clair à partir de votre question que vous savez pourquoi votre application est suspendue.
OriginalL'auteur DigitalMafiaPro | 2014-01-24
Vous devez vous connecter pour publier un commentaire.
Réponse courte: Vous ne pouvez pas attraper la notification. Vous pouvez déduire sur le choix de l'utilisateur, et agir en conséquence en utilisant
CLLocationManager
méthodes (la plus longue réponse ci-dessous).Plus réponse:
Tout d'abord, bienvenue sur le Débordement de la Pile. Avant de bien vouloir poser votre question, et en essayant d'être en collaboration avec des gens qui sont ici pour vous aider, il est une bonne idée de chercher si quelqu'un a déjà posé la même question.
Une brève recherche a donné (pour n'en citer que certains d'entre eux):
Maintenant, nous allons essayer de résumer tous, à partir de iOS docs:
Donc, si votre application a besoin d'accéder à la position de l'utilisateur, vous devez ajouter
location-services
et finalementgps
àUIRequiredDeviceCapabilities
.Puis, quelque part dans votre code si besoin, vous devez vérifier si les services de localisation sont activés.
ils peuvent être annulées pour trois raisons:
Vous êtes intéressé dans le deuxième cas: l'utilisateur a refusé de permettre à votre application pour utiliser les services de localisation.
Nouveau, à partir de la documentation:
Que peut-retour:
kCLAuthorizationStatusNotDetermined
si l'utilisateur n'a pas encore fait un choix quant à savoir si cette application peut utiliser les services de localisation.kCLAuthorizationStatusRestricted
cette application n'est pas autorisé à utiliser les services de localisation. L'utilisateur ne peut pas modifier cette application du statut, probablement en raison de restrictions en vigueur comme le contrôle parental.kCLAuthorizationStatusDenied
L'utilisateur explicitement refusé l'utilisation de services de localisation pour cette application ou les services de localisation sont actuellement désactivé dans les Réglages.kCLAuthorizationStatusAuthorized
Cette application est autorisé à utiliser les services de localisation.Si
[CLLocationManager locationServicesEnabled]
retourneNO
et vous tentez de démarrer les services de localisation, de toute façon (c'est à dire l'appel de[locationManager startUpdatingLocation]
), le système invite l'utilisateur à confirmer que les services de localisation doit être activé de nouveau. Étant donné que les services de localisation sont très susceptibles d'être désactivé sur le but, l'utilisateur peut ne pas accueillir cette invite.Je suppose que vous le savez, et a fait toutes les étapes précédentes (je ne suis sûr que vous avez coché la
authorizationStatus
). Vous avez refusé de nous montrer le code importante de votre application donc je ne peux que supposer la logique d'ensemble de derrière. Maintenant, vous avez dit que votre application se bloque. Ce doit être parce que vous n'avez pas de capture de l'erreur correctement? La capture de l'erreur est le chemin de la ré-invite l'utilisateur, si vous le souhaitez.Après l'appel de
[locationManager startUpdatingLocation]
, si ce n'est autorisée, votre délégué doit définir un locationManager:didFailWithError: pour rattraper le kCLErrorDenied.Vous pouvez montrer, à ce stade, un
UIAlert
d'insister en demandant à l'utilisateur de vous donner accès à son poste, ou déclencher un changement dans l'INTERFACE utilisateur ou ce que vous voulez.Notes finales
J'espère que vous comprenez pourquoi j'ai demandé pour le code: la raison est de vous offrir une solution de rechange au lieu de répondre "Vous ne pouvez pas attraper le "Annuler " notification".
Si cette réponse ne satisfait pas à votre question, veuillez préciser pourquoi vous avez besoin pour attraper le fait d'appuyer sur le bouton "Annuler"/"Ne pas autoriser" bouton, de sorte que nous pouvons fournir des solutions de rechange.
Clairement mon conseil est de ne pas embêter les gens à mort par la permanence de leur demander pour activer les services de localisation si ils ne veulent pas.
Post scriptum: Peut-être que la réponse peut paraître pédant et évident dans certaines parties si pas tous, mais nous sommes ici pour fournir des réponses aussi pour les futurs lecteurs.
OriginalL'auteur furins