UILocalNotification с различными органами оповещения

Как я могу повторить UILocalNotification с различными органами оповещения?

Например:

UILocalNotification *notif = [[UILocalNotification alloc] init]; 
notif.alertBody = @"Hello";
notif.repeatInterval = NSDayCalendarUnit;
[[UIApplication sharedApplication] scheduleLocalNotification:notif];

С помощью этого кода уведомление будет повторяться ежедневно, как я могу ежедневно повторять уведомление с другим телом предупреждения?

Благодарю.

2 ответа

Вы могли бы реализовать application:didReceiveLocalNotification метод в AppDelegate и увеличьте переменную "дневной счетчик". Затем запланируйте новый UILocalNotification с массивом строк для тела оповещения вашего уведомления. Используйте счетчик дней, чтобы получить обновленную строку. Вот пример кода:

В вашем AppDelegate.h:

@property (assign, nonatomic) int dayCount;

В вашем AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    [self scheduleLocalNotification];
    return YES;
}

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
    self.dayCount++;
    [self scheduleLocalNotification];
}

-(void)scheduleLocalNotification{
    NSArray *notifTextArray = [NSArray arrayWithObjects:@"Hello", @"Welcome", @"Hi there", nil];

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

    if(self.dayCount < notifTextArray.count){
        notif.alertBody = [notifTextArray objectAtIndex:self.dayCount];
    }
    else{
        self.dayCount = 0;
        notif.alertBody = [notifTextArray objectAtIndex:self.dayCount];
    }

    notif.fireDate = [NSDate dateWithTimeIntervalSinceNow:86400]; //86400 seconds in a day
    [[UIApplication sharedApplication] scheduleLocalNotification:notif];
}

Просто вариант, но надеюсь, что это поможет.

После того, как вы запланировали локальное уведомление, вы не можете изменять какие-либо свойства уведомления, а также тела предупреждения.

Возможно, вам придется отменить старое уведомление и перенести новое уведомление для достижения этой цели.

Другие вопросы по тегам