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: 应用程序运行时未调用

iOS蓝色状态栏同时使用地理围栏/背景位置更新来触发通知

LocationManager 首次在三星设备中未提供确切位置

在 iOS 后台更新位置

Android - LocationManager requestLocationUpdates - 位置更新不一致