在CoronaSDK中确认位置访问权限

有没有直接请求用户位置访问权限的方法,或者有没有某种事件侦听器,一旦授予了位置访问权限,它就会通知我?我遇到了与使用MapView对象和Director类相关的问题,我认为它取决于这个问题。

我有一个带有MapView组件的辅助视图。当导演类切换到该视图时,我的MapView对象被实例化并尝试获取用户位置。我遇到的问题是,在我的测试设备(iPhone 4)上,尝试访问用户位置发生在他们授予我位置访问权限之前,因此只有当他们离开该屏幕并稍后返回它(再次在Director库中实例化它)时,我才能使用他们的位置。

这显然是不令人满意的。

有任何帮助/建议吗?

原文链接 https://stackoverflow.com/questions/8220229

点赞
stackoverflow用户312586
stackoverflow用户312586

你的问题的解决方案很大程度上取决于你的代码。如果你希望得到帮助,你应该在SO提问中明确包含相关的代码片段。

我猜想你的代码看起来类似于MapView示例:

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

如果是这种情况,问题是位置信息被获取得太晚了。

local function callMap()
        -- 获取用户当前位置
        -- 注意:在XCode模拟器中,默认的当前位置是加利福尼亚库比蒂诺的苹果总部
        local currentLocation = myMap:getUserLocation()
        local currentLatitude = currentLocation.latitude
        local currentLongitude = currentLocation.longitude
        ...

你想要的是在更早的时候执行该代码。理想情况下,在应用程序启动时。用户会立即收到“此应用程序要访问GPS”的消息,这样他们会有更多时间在看到地图视图之前“批准”。

另一件你可以做的事情是使用缓存。将最新的已知位置存储在某个地方(根据你的设置,可以是配置文件或数据库)。当连接丢失或尚未检索时,在地图上显示最后已知的位置。

2011-11-22 12:05:31