Я полагаю, что ответ на ваш вопрос в NO , в настоящее время нет способа обновить сложность, только когда пользователь пробуждает часы.
Причины:
Идея усложнения заключается в том, что пользователь видит его, как только он или она поднимает часы и активирует дисплей.
Просто нет времени для активации или запуска приложение, ни для загрузки значения в реальном времени, чтобы отобразить его как усложнение.
Таким образом, данные должны присутствовать до пользователь наблюдает за циферблатом с усложнением.
Во многих случаях это может быть обеспечено, если данные меняются не слишком часто:
В watchOS можно планировать фоновые задачи через определенные промежутки времени, которые загружают фактические данные с сервера. В вашем случае вы хотели бы регулярно (в вашем случае каждые 5 минут) составлять WKApplicationRefreshBackgroundTask
для загрузки фактического значения, но по причинам энергопотребления количество задач ограничено:
Фоновое приложение refre sh Задачи заложены в бюджет. В целом, система выполняет приблизительно одну задачу в час для каждого приложения в док-станции (включая последнее использованное приложение). Этот бюджет распределяется между всеми приложениями на док-станции. Система выполняет несколько задач в час для каждого приложения с усложнением на активном циферблате. Этот бюджет распределяется между всеми сложностями на циферблате. После того, как вы исчерпали бюджет, система задерживает ваши запросы до тех пор, пока не станет доступно больше времени.
Таким образом, на watchOS нет способа сделать это со скоростью 1 за 5 минут.
Можно попытаться сделать это через iOS и отправить новые данные о сложности, используя func transferCurrentComplicationUserInfo(_ userInfo: [String : Any] = [:]) -> WCSessionUserInfoTransfer
, но документы говорят:
Если Осложнение на активном циферблате, вам дается 50 передач в день.
Поэтому я не вижу способа предварительно загрузить данные о сложности с такой скоростью, прежде чем пользователь поднимет часы.