Подтверждение доступа к местоположению в CoronaSDK - PullRequest
1 голос
/ 22 ноября 2011

Есть ли какой-либо способ напрямую запросить доступ к местоположению пользователя, или есть какой-либо прослушиватель событий, который уведомит меня, как только будет предоставлен доступ к местоположению? У меня возникла проблема, связанная с использованием объекта MapView с классом Director, и я думаю, что это зависит от этого.

У меня есть вторичный вид с компонентом MapView. Когда класс Director переключается на это представление, создается экземпляр моего объекта MapView, и я пытаюсь определить местоположение пользователя. У меня проблема в том, что на моем тестовом устройстве (iPhone 4) попытка доступа к местоположению пользователя происходит до того, как он предоставил мне доступ к местоположению, поэтому это происходит только тогда, когда они покидают этот экран и позже возвращаются к нему (создание экземпляра) это снова в библиотеке директора), что я могу использовать их местоположение.

Это явно неудовлетворительно.

Любая помощь / совет?

1 Ответ

0 голосов
/ 22 ноября 2011

Решение вашей проблемы во многом зависит от вашего кода.Вы должны окончательно включить соответствующие биты кода в свои вопросы SO, если вы хотите получить помощь.

Я собираюсь сделать предположение и предположить, что ваш код выглядит аналогично примеру MapView:

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

Если это так, проблема в том, что местоположение извлекается очень поздно.

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
        ...

То, что вам нужно, - это код, выполняемый ранее.В идеале, когда приложение запускается.Пользователь сразу же получит сообщение «Это приложение хочет получить доступ к GPS», поэтому у него будет больше времени для «утверждения» перед просмотром карты.

Еще одна вещь, которую вы можете сделать, - это использовать кэш.Храните где-нибудь последнее известное местоположение (файл конфигурации или базу данных, в зависимости от ваших настроек).Если соединение потеряно или еще не восстановлено, покажите последнее известное местоположение на карте.

...