2017-01-16 12 views
0

Я создаю приложение, которое должно говорить данные, когда приложение находится в фоновом режиме (или экран выключен). Говорящая часть выполняется через AVSpeechSynthesizer.Исходная задача iOS/Push Notification

Приложение для Android запускает сервис, который прослушивает данные и всякий раз, когда ему нужно что-то сказать, я говорю об этом и о его выполнении. Теперь iOS не разрешает подобные фоновые задачи из того, что я читаю. Предмет шкафа называется «Выполнение задач конечной длины», который выглядит как ограничение времени в 10 минут. Так что это не сработает для меня. Вместо этого похоже, что мне нужно использовать Push Notifications.

Посмотрите на документацию для Push-уведомлений, если я правильно ее понимаю, если мое приложение находится на Foreground, мое приложение мгновенно получает сообщение Push Notification. Хотя, если мое приложение находится в фоновом режиме, устанавливается уведомление (центр уведомлений), и как только пользователь обращается к уведомлению, мое приложение запускается с полезной нагрузкой.

Вопрос в том, есть ли в любом случае, чтобы сделать push-уведомление, разбудить мое приложение сразу, чтобы я мог говорить какую-то информацию?

Или какие другие альтернативные подходы должны использоваться в этом случае?

Моя другая идея - реализовать какой-то поток mp3 для пользователя, который будет передавать аудио, которое я мог бы играть в фоновом режиме. Но это кажется чрезмерным для того, чего я пытаюсь достичь?

ответ

2

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

- (void) application: (RMApp *) application didReceiveRemoteNotification: (NSDictionary *) userInfo fetchCompletionHandler: (void (^)(UIBackgroundFetchResult result)) completionHandler 

UIApplicationDelegate (обратите внимание на параметр completionHandler).

Вы также должны установить Remote Notifications Background Mode capability.

И вы должны установить content-available в своей полезной нагрузке push-уведомления.

Порядочная рецензия на этих шагах здесь:
http://samwize.com/2015/08/07/how-to-handle-remote-notification-with-background-mode-enabled/