Как общаться между Widget и WatchOS2?

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

Но приложение для часов работает очень медленно после обновления пользователя до WatchOS 3.

Теперь мне пришлось переписать часть часов, чтобы она была родной. Он работает без сбоев при обмене данными через библиотеку WatchConnectivity между основным приложением и WatchOS.

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

Я пробовал updateApplicationContext, но он сообщает либо «WCSession не активирован», либо watchApp не установлен, если запрос от виджета.

Нужна помощь! Спасибо!


person user2585453    schedule 06.10.2016    source источник


Ответы (1)


Я почти уверен, что вы не можете напрямую разговаривать из виджета «Сегодня» с приложением для часов. Архитектура Apple означает, что приложение для часов может взаимодействовать только с соответствующим приложением на телефоне iOS, а в WatchOS2 / 3 код расширения для часов теперь запускается на самих часах, а не на телефоне.

Я уверен, что вы уже думали об этом, но я бы сделал следующее:

  1. Когда виджет изменяет данные, напишите что-нибудь в Core Data или User settings, чтобы сообщить, что изменения были внесены (если это еще не очевидно).
  2. Заставьте приложение телефона выполнять фоновые нажатия на часы - либо при фоновом обновлении, либо, возможно, настройте уведомление, чтобы через определенные промежутки времени будить приложение телефона.
  3. Получите приложение для часов, чтобы получать последние данные через приложение для телефона, когда оно активировано.

Сообщите нам, если найдете для этого подходящее решение.

person John Pollard    schedule 12.10.2016
comment
Спасибо за Ваш ответ! Вы получите награду 100. - person user2585453; 15.10.2016
comment
Я также создал заявку в службу технической поддержки разработчиков Apple. Официальный ответ: - person user2585453; 15.10.2016
comment
Наши инженеры рассмотрели ваш запрос и пришли к выводу, что не существует поддерживаемого способа достижения желаемой функциональности с учетом текущих конфигураций системы. Если вы хотите, чтобы Apple рассмотрела возможность добавления поддержки таких функций в будущем, отправьте запрос на улучшение с помощью инструмента Bug Reporter по адресу ‹developer.apple.com/bug-reporting ›. Я все же получаю кредит от Apple. Я нажал «ввод», чтобы получить разрыв строки, но обнаружил, что он отправил мой комментарий. Извините за несколько сообщений об этом! - person user2585453; 15.10.2016