App关闭时startMonitoringForRegion

时间:2015-03-03 12:13:25

标签: ios cllocationmanager

我正在使用startMonitoringForRegion来监控特定区域。 当App未运行时,我通过比较AppDelegate中的[launchOptions objectForKey:@"UIApplicationLaunchOptionsLocationKey"],在用户进入/离开特定位置时成功生成了本地通知。

但现在我无法理解我怎么知道用户进入某个位置或离开某个位置。 我无法找到检查响应的方法。我可以在警报体中显示响应吗? 我在网上搜索但无法找到任何在AppDelegate中编写代码的教程。

1 个答案:

答案 0 :(得分:0)

您可以使用位置管理器委托方法

- (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region{

    if (state == CLRegionStateInside) {

        // We entered a region
         NSLog(@"Inside region");
 if([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground){

            UILocalNotification *notification = [[UILocalNotification alloc] init];
            notification.alertBody = @"Region Detected";
            notification.soundName = @"Default";
            [[UIApplication sharedApplication] presentLocalNotificationNow:notification];


    } else if (state == CLRegionStateOutside) {

       // We are outside region
        NSLog(@"Outside region");
    }
}

IN APPDELEGATE

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"PerformAction" object:nil userInfo:nil];
}

在ViewController viewDidLoad方法中:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(performAction) name:@"PerformAction" object:nil];

在同一个viewController中添加以下方法并执行你的操作

-(void)performAction
{
  // perform your action
}