IOS: вызов метода, когда локальное уведомление получено в фоновом режиме

Я знаю, что этот вопрос выглядит дубликатом, но я не нашел точного ответа в соответствии с моим требованием. Делаем приложение, связанное с медицинскими событиями, следуя инструкциям ниже

1) connected the app to smart watch.

2) schedule the local notifications i. e when user needs to take
medicine 

3) when the schedule time arrives local notification fires and
delegate method is calling (did receive local notification)

4) At the time of  firing local notifications i am sending
message(sms) to the user from the app  that he has to take certain
medicine

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

Есть ли решение для этого? Любая помощь будет приветствоваться! Thnxx!!

1 ответ

Решение

Вам нужно явно запустить свой метод в UIBackgroundTask. Смотрите пример ниже:

    UIApplication * application = [UIApplication sharedApplication];
    UIBackgroundTaskIdentifier background_task;
    background_task = [application beginBackgroundTaskWithExpirationHandler:^ {
        [application endBackgroundTask: background_task];
        background_task = UIBackgroundTaskInvalid;
    }];

    // your method call here

    [application endBackgroundTask: background_task];
    background_task = UIBackgroundTaskInvalid;

Я делаю что-то подобное, и это работает для меня. Дайте мне знать, если это не работает для вас.

Другие вопросы по тегам