Локальное уведомление на переднем плане в iPhone SDK - PullRequest
8 голосов
/ 28 июля 2011

Появится ли локальное уведомление, когда приложение находится на переднем плане и в данный момент работает в iPhone SDK?

Ответы [ 5 ]

9 голосов
/ 28 июля 2011

Нет, вы получите уведомление в приложении applelegate.

- (void) application:(UIApplication *)application didReceiveLocalNotification:    (UILocalNotification *)notification {
    //Place your code to handle the notification here.
}
3 голосов
/ 19 августа 2013

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

Проверьте это: https://github.com/OpenFibers/OTNotification

Демо: enter image description here

enter image description here

И вы можете отправить новое сообщение в эту библиотеку, когда получили сообщение в

- (void) application:(UIApplication *)application didReceiveLocalNotification:    (UILocalNotification *)notification
{
    OTNotificationManager *notificationManager = [OTNotificationManager defaultManager];
    OTNotificationMessage *notificationMessage = [[OTNotificationMessage alloc] init];
    notificationMessage.title = [self notificationTitle];
    notificationMessage.message = @"A notification. Touch me to hide me.";
    [notificationManager postNotificationMessage:notificationMessage];
}
2 голосов
/ 20 апреля 2015

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

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

Вы должны проверить, является ли это текущим уведомлением или нет. Иногда возникают пожары других уведомлений (когда вы их отменяете, например). Итак, вы должны проверить, это то, что вы, кроме:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
    if (fabs([[NSDate date] timeIntervalSinceDate:[notification fireDate]]) <= 0.5f)
    {
        [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Notification alert", @"")
                                    message:notification.alertBody
                                   delegate:self
                          cancelButtonTitle:@"Ok" otherButtonTitles:nil] show];    
    }
}
0 голосов
/ 02 марта 2017

Swift 2.2:

func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
    var state = application.applicationState
    if state == .Active {
        // handle the notification, e.g. show an alert 
    } 
}

Swift 3.0:

func application(_ application: UIApplication, didReceive notification: UILocalNotification) {
    var state: UIApplicationState = application.applicationState
    if state == .active {
        // handle the notification, e.g. show an alert
    }
}
0 голосов
/ 28 июля 2011

, если ваше приложение в настоящее время находится на переднем плане, в вашем делегате будет вызываться следующая функция:

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

, вы можете решить, отображать ли предупреждение, но стандартное не будет отображаться само по себе

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