UILocalPushNotificationの使い方

定期的に通知をiPhoneにPush通知を送信する方法を調べていたんだけど サーバーを介さなくてもUILocalNotification を使用するとできた。下のサンプルコードだと、毎日23:00にPush通知を送信する例。

 NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDate *now = [NSDate date];
    NSDateComponents *componentsForFireDate = [calendar components:(NSYearCalendarUnit | NSWeekCalendarUnit |  NSHourCalendarUnit | NSMinuteCalendarUnit| NSSecondCalendarUnit | NSWeekdayCalendarUnit) fromDate: now];
    // 時間帯を固定
    [componentsForFireDate setHour: 23] ; 
    [componentsForFireDate setMinute:0] ;
    [componentsForFireDate setSecond:0] ;
    [componentsForFireDate setTimeZone:[NSTimeZone defaultTimeZone]];
    UILocalNotification* notifyAlarm = [[UILocalNotification alloc]
                                        init];
    // 一日ごとに通知を送る
    notifyAlarm.repeatInterval = NSDayCalendarUnit;

    notifyAlarm.fireDate = [calendar dateFromComponents:componentsForFireDate];
    NSLog(@"fireDate is %@",notifyAlarm.fireDate);
    notifyAlarm.timeZone = [NSTimeZone defaultTimeZone];
    notifyAlarm.alertBody =  @"hello";

    //UILocalNotificationを実行する
    [[UIApplication sharedApplication] scheduleLocalNotification:notifyAlarm];

便利ですね。

Related Contents

Pickup Contents