您的位置:首页 > 移动开发 > IOS开发

本地推送 到9点自动刷新界面

2016-10-09 16:18 232 查看
- (void)viewWillAppear:(BOOL)animated

{

[self registUILocalNotification];

}

- (void)viewDidLoad {

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

}

- (void)getNotification{

    [_tableView.header beginRefreshing];

}

//第一步:创建本地推送

- (void)registUILocalNotification {

    // 创建一个本地推送

    UILocalNotification *notification = [[UILocalNotification alloc] init];

    NSDate *currentDate = [NSDate date];//获取当前时间,日期

    //把当前时间转化为时间戳

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];

    [dateFormatter setTimeZone:timeZone];

    [dateFormatter setDateFormat:@"HH:mm:ss"];

    //时间戳

    NSTimeInterval nowtime = [currentDate timeIntervalSince1970];

    NSTimeInterval period = 0.0;

    [dateFormatter setDateFormat:@"YYYY-MM-dd "];

    NSString *dateString = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:currentDate]];

    NSString *AMStr = [NSString stringWithFormat:@"%@%@",dateString,@"09:00:00"];

   

    

     if (nowtime <= [self turnDayTime:AMStr]){

        period = [self turnDayTime:AMStr] - nowtime;

     }

    

    

    if (notification != nil) {//判断系统是否支持本地通知

        // 设置推送时间

       notification.fireDate = [currentDate dateByAddingTimeInterval:period];

        // 设置时区

        notification.timeZone = [NSTimeZone defaultTimeZone];

        // 设置重复间隔

        notification.repeatInterval = kCFCalendarUnitDay;

        // 推送声音

        notification.soundName = UILocalNotificationDefaultSoundName;

        // ios8后,需要添加这个注册,才能得到授权

        if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) {

            UIUserNotificationType type =  UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound;

            

            UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:type categories:nil];

            

            [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

            // 通知重复提示的单位,可以是天、周、月

            notification.repeatInterval = NSCalendarUnitDay;

        } else {

            // 通知重复提示的单位,可以是天、周、月

            notification.repeatInterval = NSCalendarUnitDay;

        }

        //添加推送到UIApplication

        [[UIApplication sharedApplication] scheduleLocalNotification:notification];

        

    }

}

在APPDelegate里写代理方法

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification{

    NSLog(@"======9点刷新界面=====");

    [[NSNotificationCenter defaultCenter] postNotificationName:@"getNotification" object:nil];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息