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