可以在关闭应用程序时向其添加位置感知功能吗?

例如,我想创建一个接近服务,该服务在我的应用程序关闭时起作用,并在用户到达某个区域时向其推送本地通知。

我读到CLRegion可以达到类似的结果,但是只有在应用程序处于 Activity 状态(或在后台)时,我才能获得类似的结果。

我需要类似于用户位置激活的远程通知服务的工具。但这听起来真的很奇怪。 iOS中是否可以提供类似服务?

最佳答案

有2个选项:

一是约翰在上面提到的重要的位置变更服务。
另一个是startRegionMonitoring
两者都包含在Location Awarness Documentation

两者都可以短暂打开已终止(关闭)的应用程序,并且您可以传递本地推送通知以提醒用户。
该应用程序无法进入正常状态,但是如果用户单击通知,则该应用程序将打开,因此您可以实现自己的目标。

这是有关在didFinishLaunchingWithOptions委托中拦截事件并触发本地通知的示例代码。
通常,您不应在此处触发通知,而应重新初始化位置管理器,获取新职位并显示用户输入的区域的消息(本地通知)...

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //see if application was launched from a location event!
    if ([launchOptions objectForKey:UIApplicationLaunchOptionsLocationKey]) {
        //if so, we need to reinitialize our location manager!
        [[LocationManager sharedLocationManager] startSignificantLocationMonitoring];
        //fire a notification

        UILocalNotification *notification = [[UILocalNotification alloc] init];
        notification.fireDate = [NSDate date];
        NSTimeZone* timezone = [NSTimeZone defaultTimeZone];
        notification.timeZone = timezone;
        notification.alertBody = @"app did wake up";
        notification.alertAction = @"OK";
        notification.soundName = @"yes.caf";
        [[UIApplication sharedApplication] scheduleLocalNotification:notification];

    }
}

07-27 16:55