在iOS上使用基于位置的推送通知

时间:2013-03-20 18:35:57

标签: ios push-notification location-based-service

我正在研究开发一个城市的旅游应用程序,当用户靠近“感兴趣的地方”时,他可以在他的设备上进行推送(本地)。

例如,我会在我的应用中添加100个POI,并在每个POI上显示100条消息,以便在用户处于范围内时显示,例如“你离大教堂很近......”

这种情况可能吗?是否可以检查用户位置,例如即使应用程序被杀死,每10分钟一次,并且在射程范围内进行本地推送?它会消耗多少电池?如果用户关闭GPS,它会尝试使用3G / wifi信号来获取位置吗?

如果是的话,你可以指导我正确阅读关于这个主题的内容,也许会有一些教程和文章吗?

4 个答案:

答案 0 :(得分:5)

这确实是可能的。您可以使用this帖子中列出的上述技术。您可以使用CLLocationManager :: startMonitoringSignificantLocationChanges扩展此功能,以在应用程序被杀死后重新启动侦听位置的过程。根据您的准确度需求,可以对电池寿命进行许多其他优化,例如在用户加速时更频繁地检查等。

我开发了一个library来处理这些细节(适用于Android和iOS)。下载包括演示如何使用它的示例应用程序。请随意查看。

答案 1 :(得分:2)

是的,这是可能的。你需要在本地存储一些“地点”(坐标或地址)。可以通过Reverse geocoder检查与存储的“地点”的接近程度。

检查此Wonderful SO Question,与您的非常相似

答案 2 :(得分:2)

对于你的问题,这可能为时已晚,但对于其他需要它的人来说。 GeoFencing是一个不错的选择。

以下是解释地理围栏是http://academy.pulsatehq.com/7-things-about-geofencing

的视频

如果您使用的是Ionic平台,这里是插件的链接 https://github.com/cowbell/cordova-plugin-geofence

GeoFencing将解决您的问题。只需在这些旅游景点创建一堆地理围栏,当用户进入这些位置的某个半径范围内时,用户将收到通知。

祝你好运

答案 3 :(得分:0)

当应用程序被杀时,究竟会收到位置更新的内容?

虽然在后台,但您可以根据距离和时间设置位置更新。

检查How do I get a background location update every n minutes in my iOS application?

对于GPS与3g / wifi,用户可以为应用程序提供位置服务。然后,iOS将处理是否将使用GPS或单元信号来确定位置。了解重要更改位置服务here。使用重要更改服务将使用比GPS锁定更多的小区位置来确定位置,反之亦然,用于标准位置服务。另外,请查看位置准确度,以了解有关节省电池的更多信息。