我正在使用startMonitoringForRegion
来监控特定区域。
当App未运行时,我通过比较AppDelegate中的[launchOptions objectForKey:@"UIApplicationLaunchOptionsLocationKey"]
,在用户进入/离开特定位置时成功生成了本地通知。
但现在我无法理解我怎么知道用户进入某个位置或离开某个位置。 我无法找到检查响应的方法。我可以在警报体中显示响应吗? 我在网上搜索但无法找到任何在AppDelegate中编写代码的教程。
答案 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
}