繁体   English   中英

iOS中的地理位置通知

[英]Geo location notification in iOS

我想在iOS中实施地理位置通知,但只在特定的日期和时间进行。

仅当用户位于特定位置,特定日期和时间时,才会启动该通知。

例如:用户位于里约热内卢,时间是12点。

有谁知道如何合并这两个条件以启动通知?

似乎只要先进行位置更新,就可以优雅地完成。

使用此CoreLocation startMonitoringSignificantLocationChanges

要获取有关位置的更新,这些更新将能够在后台启动您的应用(如文档中所述)。 然后,在AppDelegate的“ application:didFinishLaunchingWithOptions”方法中,包括检查是否是发送通知的适当时间的逻辑(通过检查CoreData中的内容或其他方式)。

不需要创建带有定期检查的计时器。 只需让CoreLocation处理事件的入口点即可,因为它将在后台在正确的位置启动您的应用程序。

这很简单。 我假设您熟悉使用CLLocationManagerMKReverseGeocoder类。 为了您的目的,仅对显着的位置变化进行监视可能会很好(即使有时仅在行驶几公里时才发生)。 这将帮助您节省设备上的电池电量。

因此,对于CLLocationManager's委托,可以使用一种名为locationManager:didUpdateToLocation:fromLocation的方法。 您需要做的就是使用MKReverseGeocoder类在此处使用反向地理编码来确定实际城市的名称,具体取决于实际位置。 此外,您还必须检查设备上的本地时间,将两者匹配,然后采取相应措施(例如,设置本地通知以将应用从后台唤醒)。

我所知道的没有内置的东西-您将不得不自己编写逻辑代码。 因此,您只需从CoreLocation获取地理更新,就可以创建一个计时器来为您提供时间更新,然后编写一些定期执行的逻辑,如果时间/地点与您的业务规则匹配,则触发通知。 请注意,必须运行该应用程序才能完成此操作。 您可以从外部服务器发送推送通知,但是该服务器必须知道电话的位置,并且您的应用必须告诉它。

这有帮助吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM