1

Notre application actuelle que nous développons nécessite le emplacement actuel de l'utilisateur et Bluetooth pour la balise. Et nous aimerions demander à l'utilisateur la permission d'utiliser le GPS et Bluetooth (séparément). Nous prévoyons de demander la permission à l'utilisateur à chaque fois qu'il active la fonctionnalité dans la page des paramètres de notre application. Y a-t-il un moyen de faire cela?IOS - Comment demander aux utilisateurs des autorisations?

I Jusqu'à présent trouvé ce lien: I want to trigger iOS7 to ask users permission to use Bluetooth and Twitter account

Mais demander que l'utilisateur une fois pour la durée de vie de l'application. PS: nous sommes également nouveaux dans l'objectif-c une explication détaillée serait très appréciée.

Merci d'avance!

+2

En fait, vous ne demandez à personne l'autorisation de l'utilisateur, c'est le code Apple qui demande l'autorisation. La seule façon de l'obtenir à plusieurs reprises est de savoir si l'utilisateur va dans les paramètres et l'éteint lui-même et même alors, je ne suis pas sûr de savoir si il va les demander à nouveau. – Popeye

+0

Ce lien vous sera utile http://techcrunch.com/2014/04/04/the-right-way-to-ask-users-for-ios-permissions/ – rptwsthi

+0

@Popeye L'application demandera à nouveau si l'utilisateur a éteint le bluetooth des paramètres. Si l'utilisateur veut allumer le bluetooth ou non? – Arpit

Répondre

2

Vous devrez construire votre propre boîte de dialogue pour demander cette permission si vous voulez demander à chaque fois. Par défaut, les boîtes de dialogue déclenchées par Apple apparaissent une fois (ou deux fois dans iOS8) lorsque vous demandez l'accès aux API de localisation pour la première fois. Pour avoir iOS demander la permission que vous devez faire deux choses (en iOS8):

ajouter NSLocationAlwaysUsageDescription ou requestWhenInUseAuthorization à votre info.plist ces clés détiennent une chaîne qui utilise iOS i la boîte de dialogue, il présente lorsque vous préforme la étape suivante:

envoyez requestAlwaysAuthorization ou requestWhenInUseAuthorization à une instance de CLLocationManager. c'est-à-dire

CLLocationManager* myLocationManager = [[CLLocationManager alloc] init]; 
[myLocationManager requestAlwaysAuthorization]; 

À ce stade, iOS affichera les boîtes de dialogue qui vous sont familières. iOS8 affichera également une autre boîte de dialogue pour confirmer ceci quelque temps après la permission initiale (environ deux jours). Il ne demandera pas à plusieurs reprises.

si vous voulez construire votre propre boîte de dialogue, vous devriez faire ceci:

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Use bluetooth" 
                    message:@"is it ok for this app to use Bluetooth" 
                  preferredStyle:UIAlertControllerStyleAlert]; 
    UIAlertAction* yesButton = [UIAlertAction actionWithTitle:@"Yes" 
                 style:UIAlertActionStyleDefault 
                 handler:^(UIAlertAction *action) { 
                  // This code runs when the user presses YES. 
                  // You should also add code to handle a NO button. 
                 }]; 
    [alert addAction:yesButton]; 

Vous devez ensuite afficher l'alerte. Utilisation probable presentViewController::

0

Il existe certaines façons dont toutes les applications gérer ce type d'autorisation.

Fondamentalement, votre application demande à iOS de faire quelque chose, iOS décide si cela nécessite une autorisation de l'utilisateur et demande l'autorisation de l'utilisateur si nécessaire. L'utilisateur peut refuser dans quel cas votre appel iOS obtient une erreur appropriée. L'utilisateur peut avoir refusé la dernière fois que l'application a été lancée ou avoir désactivé la permission dans les préférences, auquel cas votre appel échoue sans interface utilisateur. L'utilisateur peut activer la permission dans les préférences, ou peut avoir donné la permission la première fois, et votre appel réussira sans aucune interface utilisateur.

C'est comme ça que tout le monde travaille. Vous pouvez mettre en place une alerte ou une boîte de dialogue pour obtenir la permission d'un utilisateur, mais cela ne vous mènera nulle part. Vous ne pouvez pas obtenir l'autorisation de l'utilisateur sans passer par iOS lui-même. Même si vous le pouvez, vous ne voudriez pas utiliser une interface utilisateur différente de celle de tout le monde. Et même si vous le faisiez, cela signifierait que votre application serait très probablement rejetée du magasin.

Remarque: La notification d'autorisation Bluetooth à laquelle vous avez lié peut être utile.Bien sûr, vous ne devriez pas implémenter l'alerte à la fin de l'exemple de code, c'est seulement pour démontrer que le code fonctionne.

Questions connexes