【问题标题】:Appcelerator Titanium startMonitoringForRegionAppcelerator Titanium startMonitoringForRegion
【发布时间】:2011-08-02 18:51:33
【问题描述】:

我正在使用 Appcelerator Titanium 来构建我的移动应用程序(iphone + android)。 我在他们的文档中找到了 Titan.geolocation,但我找不到任何方法,例如我们在 iOS 中使用的“startMonitoringForRegion”或“startMonitoringSignificantLocationChanges”。但它具有定义为“ERROR_REGION_MONITORING_DENIED”的属性,因此必须有一些区域监控方法。

所以它没有在文档中定义还是我遗漏了什么。我试过谷歌搜索,但找不到。

基本上,我想要的只是在用户进入特定区域时向用户显示一些警报,即使应用程序处于后台(就像我过去在 iOS 中使用 startMonitoringForRegion 所做的那样)。钛也有可能。请帮忙。

【问题讨论】:

  • 我仍然无法找到任何完美的答案.. 来自 appcelerator 的人或有此问题的专家.. 请帮助

标签: iphone android titanium appcelerator-mobile


【解决方案1】:

“对于不需要常规位置事件流的应用程序,您应该考虑使用startMonitoringSignificantLocationChanges 方法来启动事件的传递。这种方法更适合大多数只需要初始用户的应用程序“

按照 Apple 定义的标准,您似乎只需要设置 Titanium.Geolocation.distanceFilter 以便事件继续每 * 米触发一次

没有关于它的直接文档,但是如果您查看 KS 资源,您会看到 geolocation.js 文件使用了一些未记录的功能。我必须基本上复制它并删除我的应用程序不需要的内容。

https://github.com/appcelerator/KitchenSink/blob/master/Resources/examples/geolocation.js#L345

startMonitoringForRegion 应该是相同的想法,但您需要按照此documentation 中的定义设置accuracy constant

【讨论】:

  • 是的,我绝对可以设置所有这些.. 但问题是“startMonitoringSignificantLocationChanges”和“startMonitoringForRegion”即使在应用程序已暂停并且设备进入受监控区域时也会在后台唤醒应用程序.. . 但地理位置监听器并非如此
  • 而且我只是意识到手机信号塔可能会在另外 1 米或 30 米后发生变化,这取决于存在的网络,所以我不能只设置距离过滤器并实现功能
  • github.com/appcelerator/KitchenSink/blob/master/Resources/bg.js 对于您的第一条评论,您可以将 TiGeo 事件置于后台,但至于您的第二条评论,这似乎也是一个错误的解决方案......
  • 虽然不是我想要的完美答案,但迄今为止的接近答案
【解决方案2】:

您可以尝试将侦听器附加到regionChanged 事件

http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.Map.MapView-object

【讨论】:

  • 地图功能仅在您显示地图时才被调用,而且它不会在后台工作..谢谢尝试..其他任何人..
猜你喜欢
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 2016-11-14
  • 2011-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多