0

je courais le code suivant en utilisant l'iPhone 4s simulater:titane/Appcelerator/Alloy: Impossible d'obtenir l'emplacement actuel, malgré le succès retour vrai

Ti.Geolocation.getCurrentPosition(function(e){ 
    Ti.API.log(JSON.stringify(e)); 
}); 

Une version formatée de la sortie de ce qui précède donne les informations suivantes :

{ 
    "code": 0, 
    "type":"location", 
    "error":"The operation couldn’t be completed. (kCLErrorDomain error 0.)", 
    "source":{}, 
    "success":true 
} 

Il semble y avoir des informations assez contradictoires. Il dit success est true encore donne un message d'erreur.

En outre, selon le Location Results Docs, il indique que si le succès est vrai, il devrait renvoyer un champ coords. Pourtant, ce qui précède n'a pas coords à ce sujet.

S'il vous plaît noter également les deux déclarations suivantes true donc ne est pas un problème d'autorisation:

Ti.Geolocation.locationServicesEnabled; Ti.Geolocation.hasLocationPermissions (Ti.Geolocation.AUTHORIZATION_ALWAYS);

Répondre

1

Il y a 2 choses à prendre des notes:

  1. locationServicesEnabled property for device

  2. hasLocationPermissions method

Tout d'abord, vous devez vérifier pour la 1ère propriété pour vous assurer que l'emplacement de l'appareil est activé.

Ensuite, vous allez vérifier hasLocationPermissions car cela peut être vrai même si l'emplacement de l'appareil n'est pas allumé, ce que je pense est votre cas.

Exemple de code pour ceci:

var authType = Ti.Geolocation. AUTHORIZATION_ALWAYS; 

if (Ti.Geolocation.locationServicesEnabled) { 
    if (Ti.Geolocation.hasLocationPermissions(authType)) { 
     // voila... 
    } else { 
     Ti.Geolocation.requestLocationPermissions(authType, function (e) { 
      if (e.success) { 
       alert('voila...'); 
      } 
     }); 
    } 

} else { 
    alert('Please turn on your device's location'); 
} 
+0

J'ai édité la question et il montre que 'locationServicesEnabled' est vrai aussi. Il ne traite pas non plus du fait que 'e.success' est' true' mais donne un message d'erreur. C'est contre ce qu'il dit sur les docs. –