2017-08-10 2 views
2

Mon application nécessite l'autorisation de localisation "always". Apple a compliqué les options de permission de localisation si les applications demandaient 'toujours' directement, alors j'ai commencé à demander 'tout en utilisant' puis 'toujours'. Cela donne à l'utilisateur une première boîte de dialogue, pour 'tout en utilisant', avec les boutons 'Ne pas autoriser' et 'Autoriser', ce qui est génial. Cependant, je voudrais que le prochain dialogue ait ces mêmes boutons (en supposant qu'ils permettent 'tout en utilisant'), et je recevais ceci avant ma mise à niveau vers iOS 11 Beta 5 (je ne suis pas sûr - j'ai peut-être sauté quelques betas). Avec iOS 11 Beta 5, je vois un texte de bouton compliqué (comme 'En utilisant l'application' et 'Toujours' au lieu de 'Ne pas autoriser'/'Autoriser') MÊME SI la permission 'en utilisant' est déjà accordé.Simplifier les demandes d'autorisation de localisation dans iOS 11

Je veux donner aux utilisateurs les options les plus simples. Je pense que les utilisateurs lisent ces boîtes de dialogue à peu près aussi souvent qu'ils lisent les CLUF, et que si ce n'est pas une simple autorisation, la plupart choisissent une option aléatoire au lieu de lire, et mon application n'aura pas l'autorisation Besoins. Est-ce possible avec la dernière version d'iOS 11 Bêta? Et sera-t-il possible dans la version finale d'iOS 11? Je pensais que c'était ce que Apple a laissé entendre - est ici quelques conseils (de https://m.rover.io/wwdc-2017-update-significant-updates-to-location-permissions-coming-with-ios-11-41f96001f87f):

Pour ceux qui recherchent toujours les niveaux d'autorisation, Apple recommande maintenant un nouveau flux d'autorisation qui est essentiellement une approche en deux étapes. La première phase ou Onboarding initiale, ne doivent demander des autorisations 'lors de l'utilisation' ...

+0

J'ai le même problème. Avez-vous trouvé une solution? –

+0

S'il vous plaît jeter un oeil dans cette solution- https://stackoverflow.com/a/46339284/3024579 – Alok

Répondre

3

La boîte de dialogue reste le même pour iOS 11.

Avec iOS requestWhenInUseAuthorization() présentera ces options:

enter image description here

Si l'utilisateur a autorisé l'accès à l'emplacement en cours d'utilisation et que vous demandez par la suite d'accéder toujours à l'emplacement avec requestAlwaysAuthorization(), iOS présente ces options. Vous recevez déjà l'avantage ici que Don't Allow Any Access n'est pas offert:

enter image description here

Si vous demandez requestAlwaysAuthorization() tout de suite avant de demander requestWhenInUseAuthorization(), iOS présentera ces options:

enter image description here

Alors résolvez votre problème, il est conseillé de ne pas simplement demander les dialogues iOS mais de préparer l'utilisateur avec votre propre pré-dialogue. Ne demandez que les dialogues iOS lorsque vous êtes sûr que l'utilisateur acceptera. Cela réduira les chances qu'un utilisateur refuse l'accès cette fois, mais aurait peut-être autorisé l'accès dans d'autres circonstances. Une fois que l'utilisateur a refusé, vous ne pouvez plus demander les boîtes de dialogue iOS.


Sur une note générale:

Je pense que les utilisateurs lisent ces permissions des dialogues sur aussi souvent qu'ils lisent CLUF

Franchement dit, cela ne devrait pas être l'hypothèse fondamentale sur Nous développons des workflows d'applications et contrôlons la confidentialité des utilisateurs.

Les entreprises technologiques et le discours public se concentrent de plus en plus sur la confidentialité des utilisateurs. Donner des choix n'est clairement pas suffisant, une partie du travail est d'éduquer les utilisateurs qui accordent leur emplacement 24/7 à un développeur hobby inconnu ou une entreprise dans un pays avec des lois inconnues sur la protection des données est différent de cliquer sur Yes sur un CLUF. En outre, les modifications légales exigent que le partage d'informations sensibles telles que votre emplacement en direct ne puisse pas être caché quelque part dans un CLUF, mais que l'utilisateur doive le faire explicitement. Heureusement, les efforts d'entreprises telles qu'Apple garantissent un accès responsable aux données des utilisateurs pour que ceux-ci développent des fonctionnalités géniales. Cela ne peut être fait qu'en donnant le choix aux utilisateurs par le biais d'invites évidentes comme celle à laquelle vous faites référence. Parce que l'alternative pourrait être pas de partage de données ou des obstacles plus élevés par la loi.

+0

"... vous demander plus tard d'accéder à l'emplacement alors que l'utilisateur n'utilise pas l'application avec requestAlwaysAuthorization() ..." faire Vous savez combien de temps est "plus tard" - une minute ou une heure d'utilisation de l'application ou de localisation? – Lachezar

+1

@Lachezar Vous pouvez demander 'requestAlwaysAuthorization' à tout moment. Il n'y a pas de restriction de temps de iOS. – Manuel

+0

en effet, il me manquait NSLocationAlwaysAndWhenInUseUsageDescription dans l'info.plist et je me demandais pourquoi la boîte de dialogue d'autorisation ne s'affiche pas:/ – Lachezar