Я пытаюсь реализовать образец виджета iOS 8 Today, который включает в себя элементы управления музыкальным проигрывателем, приложение представляет собой базовое музыкальное приложение с включенным фоновым звуком.
Я много искал, чтобы найти способ уведомления о содержащем приложении, но не нашел!.
Сценарий в основном, приложение находится в приостановленном состоянии и на выбранной песне/альбоме (оно может быть приостановлено на определенной песне), тогда мне нужно отобразить имена в виджете с кнопками воспроизведения/остановки/следующей и т. д.
Основано на документации Apple и этом документе, описывающем сценарии использования: https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensibilityPG.pdf
В нем упоминается, что расширения не должны обрабатывать какое-либо длительное выполнение, и конкретно указывается воспроизведение звука как неподдерживаемый случай, поскольку оно должно работать вне расширения. но он не упомянул способ запуска содержащего приложение в таком сценарии, он просто упомянул метод NSURLSession, который может обрабатывать загрузку больших файлов и приложение пробуждения в фоновом режиме для вызова handleEventsForBackgroundUrlSession, а также возможности совместного использования App-Group, где могут использоваться как содержащее приложение, так и расширение. получить доступ к общему контейнеру данных. Единственным заявленным возможным решением является решение openURL, которое принудительно переводит все приложение на передний план.
Я настроил одну группу приложений для своей демонстрации и попробовал вызовы NSNotificationCenter с использованием настраиваемого уведомления, вызвав addObserver/postNotificationName для содержащего приложение и расширение соответственно, но это вообще не сработало. Вместо этого я даже пытался изменить NSUserDefaults для App-Group, но это также не срабатывает при содержании фона приложения.
Вот несколько вопросов, которые могут быть связаны, но я не нашел в нем ответа: (Обмен данными между расширением приложения и приложением conainer) --- (NSUserDefaultsDidChangeNotification не отправляется, когда приложение возобновляет работу в фоновом режиме) --- (Установить уведомления из виджета расширения «Сегодня»)
Я думал, что это может быть невыполнимо, но я только что нашел приложение под названием TapTunes, которое недавно добавило виджет с аналогичными функциями, включая все элементы управления в самом расширении.
Спасибо.