IOS "Local" Push Notification - программирование
Подтвердить что ты не робот

IOS "Local" Push Notification

Эй

Я ищу способ сделать "локальные" push-уведомления. Я не могу понять, как я должен это делать, поэтому я ищу какую-то помощь. Что мне нужно:

  • способ отправки уведомления для пользователя, который не открыл приложение в течение 24 часов. (Или, что изменение int havent)

Я очень надеюсь, что у кого-то из вас есть время, чтобы помочь мне, спасибо!

4b9b3361

Ответ 1

Это довольно прямолинейно:

1) Когда приложение закрыто, планируйте локальное уведомление, которое будет срабатывать в течение 24 часов

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.fireDate = [[NSDate date] dateByAddingTimeInterval:60*60*24];
    notification.alertBody = @"24 hours passed since last visit :(";
    [[UIApplication sharedApplication] scheduleLocalNotification:notification];
}

2), если приложение открыто (до того, как локальное уведомление срабатывает), отмените локальное уведомление

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
}

Ответ 2

Вы можете использовать UILocalNotification для этой цели.

И выполните ваши UIApplication applicationWillTerminate и applicationDidEnterBackground делегаты, например:

- (void)applicationWillTerminate:(UIApplication *)application
{
   [self scheduleNotification];
}

 - (void)applicationDidEnterBackground:(UIApplication *)application
{
   [self scheduleNotification];
}

 - (void)scheduleNotification
{
   UILocalNotification *locNot = [[UILocalNotification alloc] init];
   locNot.fireDate             = [NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24];
   [[UIApplication sharedApplication] scheduleLocalNotification: locNot];
}

При входе в приложение вам необходимо отменить это уведомление. Поэтому реализуйте applicationDidBecomeActive like;

- (void)applicationDidBecomeActive:(UIApplication *)application
{
   [[UIApplication sharedApplication] cancelAllLocalNotifications];
}

Ответ 3

UILocalNotification будет соответствовать вашим требованиям Apple doc