有没有办法直接请求访问用户的位置,或者是否有某种事件监听器会在授予位置访问权限后通知我?我遇到了与使用Director类的MapView对象相关的问题,我认为这取决于此。
我有一个带有MapView组件的辅助视图。当director类切换到该视图时,我的MapView对象被实例化,我试图获取用户的位置。我遇到的问题是,在我的测试设备(iPhone 4)上,访问用户位置的尝试是在他们授予我位置访问权限之前进行的,所以只有当他们离开该屏幕并稍后返回它时才会进行实例化(实例化)它再次在导演库中,我能够使用他们的位置。
这显然不能令人满意。
任何帮助/建议?
答案 0 :(得分:0)
问题的解决方案在很大程度上取决于您的代码。如果您想获得帮助,您应该明确地在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”消息,因此在看到mapview之前,他们将有更多时间“批准”。
您可以做的另一件事是使用缓存。将某个最新的已知位置存储在某个位置(配置文件或数据库,具体取决于您的设置)。当连接丢失或尚未检索时,显示地图上的最后一个已知位置。