Как обновить приложение из расширения «Сегодня»

У меня есть требование обновить приложение, содержащее контроллер представления, из контроллера представления виджета TodayExtension, когда приложение находится в фоновом/переднем плане. Допустим.

  1. Приложение, содержащее контроллер просмотра, содержит список информации. При следующем нажатии на кнопку «Домой» приложение переходит в фоновое состояние.
  2. Теперь откройте виджет и покажите список информации, как показано в приложении, содержащем контроллер представления в TodayExtensionViewcontroller.
  3. Если вы обновите какую-либо информацию в TodayExtensionViewController, ту же информацию я хочу воспроизвести в приложении, содержащем контроллер представления, когда приложение переходит из фонового состояния в состояние переднего плана.

person Rajesh    schedule 25.10.2017    source источник
comment
Используйте App Group и UserDefaults. Проверьте эту ссылку.   -  person Ryan    schedule 25.10.2017


Ответы (1)


Ваше приложение и расширение Today должны иметь возможность обмениваться данными.

Прежде всего, вы должны добавить возможность «Группа приложений» в идентификаторы приложений как вашего приложения, так и вашего расширения «Сегодня», чтобы они могли получить доступ к общим данным.

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

Каждый раз, когда ваше приложение выходит на передний план, оно должно проверять, изменились ли общие данные (или просто перезагружать свои данные из общего хранилища), чтобы изменения, сделанные в виджете, вступили в силу.

Каждый раз, когда пользователь изменяет данные в вашем приложении (или, по крайней мере, до того, как приложение станет «неактивным»), приложение должно обновлять общие данные, чтобы виджет был актуальным.

Это руководство от Apple — хорошее начало точка. Кроме того, существует множество хороших учебных пособий, которые объясняют «обмен данными» гораздо более подробно.

person Raginmari    schedule 06.02.2018