Можно ли получить локальное уведомление, когда состояние приложения неактивно - PullRequest
1 голос
/ 03 февраля 2012

Я разрабатываю приложение для iOS, и мне нужно получить локальное уведомление, НО в случае, если состояние приложения неактивно Я успешно получаю уведомления, когда приложение находится в фоновом режиме. Итак, возможно ли получить локальное уведомление, когда приложение неактивно? Или, возможно, это возможно только с помощью push-уведомлений?

С уважением, Армен

Ответы [ 3 ]

9 голосов
/ 03 февраля 2012

Вам необходимо отвечать на локальные уведомления в двух местах в вашем делегате приложения:

- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

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

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

Второй - когда ваше приложение запущено (активно или неактивно).Вы можете проверить, не является ли приложение неактивным, проверив свойство NSApplication applicationState в методе application:didReceiveLocalNotification:.

2 голосов
/ 23 августа 2014
- (void)sendNotification
{
    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
//    notification.repeatInterval = NSDayCalendarUnit;
    localNotification.fireDate = vwPicker.date;
    localNotification.alertBody = txtAlarmTitle.text;
    localNotification.timeZone = [NSTimeZone defaultTimeZone];
    localNotification.userInfo = @{@"Title": txtAlarmTitle.text};
    localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}


- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
    [self handleNotification:notification application:application];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UILocalNotification *localNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotification)
        [self handleNotification:localNotification application:application];

    return YES;
}

-(void)handleNotification: (UILocalNotification *)notification application:(UIApplication *)application
{
    NSString *title = [notification.userInfo objectForKey:@"Title"];

    [[[UIAlertView alloc]initWithTitle:@"Smart Alarm" message:title delegate:self cancelButtonTitle:@"Answer the Teaser" otherButtonTitles: nil] show];

    application.applicationIconBadgeNumber = 0;
}
0 голосов
/ 19 июня 2018

Конечно, просто используйте willResignActiveNotification прослушиватель уведомлений, как указано здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...