Локальное уведомление

Я реализовал локальное уведомление в своем игровом приложении, которое срабатывает один раз в день для получения ежедневного бонуса. Все работает нормально, когда я нажимаю на баннер уведомлений, однако, когда я захожу в приложение из значка приложения, локальное уведомление не работает должным образом.

Вот мой код:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{
.......
.......
application.applicationIconBadgeNumber = 0;
UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotif)
{
     NSLog(@"recieved notification %@",localNotif);
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Daily Bonus"
                                                   message:@"You recieved 100 free coins"
                                                  delegate:nil
                                         cancelButtonTitle:nil
                                         otherButtonTitles:@"ok", nil];
    [alert show];
    [alert release];
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
    float balance = [standardUserDefaults floatForKey:kCurrentScore];
    balance +=100.0f;
    NSLog(@"%g",balance);
    [standardUserDefaults setFloat:balance forKey:kCurrentScore];
    [standardUserDefaults synchronize];
}

Буду признателен за любую помощь.


person Elad Shevah    schedule 01.11.2012    source источник


Ответы (1)


Вот как это работает.
Запуск приложения с его значка не вызовет никаких уведомлений для вашего приложения, только с баннера.
Возможно, вам следует использовать ту же логику, что и та, которая запускает ваше уведомление, если вы хотите чтобы вознаграждать ваших пользователей, даже если они не нажимали на баннер — просто подсчитайте, сколько времени прошло с момента последнего запуска приложения, и делайте там свои дела.

person Moshe Gottlieb    schedule 01.11.2012