【发布时间】:2014-10-08 01:39:45
【问题描述】:
我编写了一些延迟发送本地通知的应用程序,当收到通知时,我想根据设备移动来决定要做什么。 如果设备处于移动状态 - 设置相同的通知和新的延迟并保持在后台。 如果设备不在移动中 - 弹出特定的视图控制器。
我在“无驱动”模式下确实成功了,但是当设备处于移动状态时 - 我真的不知道如何处理这种情况。
这是我现在的代码,希望得到一些帮助 谢谢!
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSLog(@"Notification recieved from background...");
//check if device is in move
CLLocationManager *locationManager = [[CLLocationManager alloc]init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
locationManager.distanceFilter = 50;
[locationManager startMonitoringSignificantLocationChanges];
if (locationManager.location.speed > 10) {
NSLog(@"Device is in drive....");
notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];//TODO - Debug Set Real Time Before publish
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
NSLog(@"New Notification sent to device");
self.window.rootViewController = nil;
[self.window makeKeyAndVisible];
}
else{
NSLog(@"Device is not in drive....");
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
IGUViewFillDetailsController *vc = (IGUViewFillDetailsController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"IGUViewFillDetailsController"];
vc.dic = notification.userInfo;
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController: vc];
self.window.rootViewController = vc;
//[self.window addSubview:vc.view];
[self.window makeKeyAndVisible];
}
}
【问题讨论】:
-
什么问题,通知没有生效?
-
我有 2 个问题: 1. 如果设备处于移动状态 - 应用程序显示与打开的最后一个视图一起显示,我希望它在没有任何用户操作的情况下保持在后台。 2.第二个问题是,如果设备没有移动并且我推送另一个视图 - 当前视图显示在想要的视图之前....
标签: ios objective-c iphone notifications localnotification