Если вы хотите запустить локальное уведомление, например: через 5 секунд используйте этот код:
- (void)applicationDidEnterBackground:(UIApplication *)application {
UILocalNotification* localNotification = [UILocalNotification new];
localNotification.fireDate = [[NSDate new] dateByAddingTimeInterval:5]; // Notification will be fired after 5 since now.
localNotification.alertBody = @"Your alert message";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}
ВНИМАНИЕ: Если вы хотите получать уведомления, вы должны запросить у пользователя разрешение, например:
UIUserNotificationType types = UIUserNotificationTypeBadge |
UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings *mySettings =
[UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];
Код разрешения, указанный выше, может быть вызван в вашем методе AppDelegate.m
, например: в методе didFinishLaunchingWithOptions
. Вы должны знать, что метод performSelector
не подходит в этом случае, каждый UILocalNotification
имеет свойство fireDate
, которое должно использоваться для запуска уведомления с заданной задержкой NSDate
.
ОБНОВИТЬ
Сегодня у меня была такая же проблема, я передал пустую строку alertBody
, и уведомление не появилось. Так что на мой взгляд ваш
NSLocalizedString(@"You are going to be disconnected. To continue being online, please open the application",nil);
возвращает пустую строку или ноль.
Попробуйте присвоить свойству alertBody
любую другую строку, например.
localNotification.alertBody = @"test"
должно работать :)
Часть документа Apple:
Декларация SWIFT
вар alertBody: Строка?
Обсуждение Назначьте строку или, что предпочтительнее, ключ локализованной строки (используя NSLocalizedString) в качестве значения сообщения. Если значение этого свойства не равно нулю, отображается предупреждение. Значение по умолчанию — nil (нет предупреждения). Экранирующие символы в стиле Printf удаляются из строки перед отображением; чтобы включить в сообщение символ процента (%), используйте два символа процента (%%).
person
Robert
schedule
15.12.2015