iOS LocationManager 未更新位置(Titanium Appcelerator 模块)
Posted
技术标签:
【中文标题】iOS LocationManager 未更新位置(Titanium Appcelerator 模块)【英文标题】:iOS LocationManager is not updating location (Titanium Appcelerator module) 【发布时间】:2012-03-10 18:17:02 【问题描述】:我制作了 Appcelerator Titanium 模块,用于获取设备的旋转和位置。来源可以在GitHub找到。
问题是它只获取一个缓存位置,但设备运动数据正常并且正在刷新。
我不使用委托,而是在我的 Titanium javascript 代码中提取数据。 如果我在 Simulator -> Debug -> Location 中设置“City Run”,则不会发生任何事情。正在返回相同的缓存位置。
提取位置是可以的,因为我尝试使用本机应用程序来做到这一点:
textView.text = [NSString stringWithFormat:@"%f %f\n%@",
locationManager.location.coordinate.longitude,
locationManager.location.coordinate.latitude,
textView.text];
它可以在模拟器和设备上运行。
但您在 GitHub 上看到的相同代码不能用作 Titanium 模块。
有什么想法吗?
编辑:
我正在查看GeolocationModule src,我发现那里没有什么特别之处。
正如我所说,我的模块中的代码必须工作,因为它在本机应用程序中工作。 “唯一”的问题是它没有更新位置,它总是返回我缓存的位置。
【问题讨论】:
【参考方案1】:答案是将 ENSURE_UI_THREAD 放在开始位置更新的函数的顶部。
【讨论】:
在经历了两周的痛苦和悲伤之后,你成就了我的一天。上帝保佑你。以上是关于iOS LocationManager 未更新位置(Titanium Appcelerator 模块)的主要内容,如果未能解决你的问题,请参考以下文章
iOS:LocationManager 更新,何时停止更新?
locationManager:didExitRegion: 应用程序运行时未调用