Bestätigung des Standortzugriffs in CoronaSDK

  • Gibt es eine Möglichkeit, den Zugriff auf den Standort des Benutzers direkt anzufordern, oder gibt es einen Ereignis-Listener, der mich benachrichtigt, sobald der Standortzugriff gewährt wurde? Ich habe ein Problem im Zusammenhang mit der Verwendung des MapView-Objekts mit der Director-Klasse, und ich denke, das hängt davon ab.

    Ich habe eine sekundäre Ansicht mit einer MapView-Komponente . Wenn die Director-Klasse zu dieser Ansicht wechselt, wird mein MapView-Objekt instanziiert und ich versuche, den Standort des Benutzers abzurufen. Das Problem, das ich habe, ist, dass auf meinem Testgerät (iPhone 4) versucht wird, auf den Standort des Benutzers zuzugreifen, bevor er mir Standortzugriff gewährt hat. Dies ist also nur der Fall, wenn er diesen Bildschirm verlässt und später zu ihm zurückkehrt (Instantiating) wieder in der Director-Bibliothek), dass ich ihren Standort verwenden kann.

    Dies ist offensichtlich unbefriedigend.

    Jede Hilfe / Beratung?

    22 November 2011
    Vice Is Nice
1 answer
  • Die Lösung Ihres Problems hängt stark von Ihrem Code ab. Sie sollten die entsprechenden Codebits definitiv in Ihre SO-Fragen einschließen, wenn Sie Hilfe erhalten möchten.

    Ich werde eine Vermutung anstellen und davon ausgehen, dass Ihr Code dem MapView ähnelt Beispiel:

    http: //developer.anscamobile. de / reference / index / nativenewmapview

    Wenn dies der Fall ist, besteht das Problem darin, dass der Standort sehr spät abgerufen wird.

     local function callMap()
            -- Fetch the user's current location
            -- Note: in XCode Simulator, the current location defaults to Apple headquarters in Cupertino, CA
            local currentLocation = myMap:getUserLocation()
            local currentLatitude = currentLocation.latitude
            local currentLongitude = currentLocation.longitude
            ...
     

    Sie möchten, dass der Code früher ausgeführt wird. Idealerweise, wenn die Anwendung startet. Der Benutzer erhält sofort die Nachricht "Diese Anwendung möchte auf das GPS zugreifen", so dass sie mehr Zeit zum "Genehmigen" hat, bevor sie die Kartenansicht sieht.

    Eine andere Sache, die Sie können do benutzt einen Cache. Speichern Sie den letzten bekannten Speicherort irgendwo (eine Konfigurationsdatei oder die Datenbank, abhängig von Ihrem Setup). Wenn die Verbindung unterbrochen oder noch nicht abgerufen wurde, zeigen Sie den letzten bekannten Ort auf der Karte an.

    22 November 2011
    kikito