有没有办法直接请求访问用户的位置,或者是否有某种类型的事件侦听器,一旦授予位置访问权限就会通知我?我在Director类中使用MapView对象时遇到了一个问题,我认为这是一个关键问题。
我有一个包含MapView组件的辅助视图。当指挥交换机类切换到该视图时,我的MapView对象被实例化,并且我尝试获取用户的位置。我遇到的问题是,在我的测试设备(iPhone 4)上,访问用户位置的尝试发生在他们授予我位置访问权限之前,所以只有当他们离开屏幕并稍后返回屏幕(在Director库中再次实例化它)时,我才能够使用他们的位置。
这显然不能令人满意。
有什么帮助/建议吗?
发布于 2011-11-22 20:05:31
问题的解决方案在很大程度上取决于您的代码。如果你想获得帮助,你应该明确地在你的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”的消息,因此在查看地图视图之前,他们将有更多的时间“批准”。
你可以做的另一件事是使用缓存。将最新的已知位置存储在某个位置(配置文件或数据库,取决于您的设置)。当连接丢失或尚未恢复时,在地图上显示最后一个已知位置。
https://stackoverflow.com/questions/8220229
复制相似问题