首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOS -得到通知并决定该做什么

IOS -得到通知并决定该做什么
EN

Stack Overflow用户
提问于 2014-10-08 01:39:45
回答 1查看 152关注 0票数 0

我编写了一些应用程序,延迟发送本地通知,当收到通知时,我想根据设备移动来决定该做什么。如果设备在移动-设置相同的通知与新的延迟,并停留在背景。如果设备没有在移动-弹出特定的视图控制器。

我确实成功的“无驱动器”模式,但当设备在移动-我真的不知道热处理这种情况。

这是我现在的代码,希望能有所帮助--谢谢!

代码语言:javascript
复制
- (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];

    }



}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-14 03:37:10

Problem1:

您计划了一个通知,它将显示在火灾日期,您可以在火灾日期前1秒取消通知并重新安排它。假设您将在10秒内触发此通知,您将使用一个将在9秒内触发的NSTimer,在计时器的选择器中检查用户是否正在移动,如果用户正在移动,则取消通知并将其延迟10秒并再次调度它,请记住,您还必须更新计时器,以便在新通知的下一个触发日期之前进行检查。

Problem2:

这是默认行为,iOS将在应用程序进入背景之前进行快照,当应用程序退出背景时,它将显示该快照,您可以在applicationDidEnterBackground中添加一个空视图,然后这个空视图将显示在所要的视图之前。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26247956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档