Лимит обновления осложнений для Apple Watch

У меня возникла проблема, которую, возможно, нужно обновлять каждые 5 минут. это может легко составить до 120 обновлений в день. Есть ли способ обновлять только тогда, когда пользователь будит часы?


person david72    schedule 24.04.2020    source источник
comment
Я предполагаю, что вы не знаете значения обновления заранее, то есть для определенной временной шкалы, но они должны обновляться в реальном времени? (Если бы они были известны заранее, вам просто нужно было соответствующим образом загрузить временную шкалу, и визуальное обновление было бы выполнено автоматически.)   -  person Reinhard Männer    schedule 29.04.2020
comment
@ ReinhardMänner Ага, новое неизвестное значение каждые 5 минут. Спасибо!   -  person david72    schedule 30.04.2020


Ответы (1)


Я полагаю, что ответ на ваш вопрос - НЕТ, в настоящее время нет возможности обновить усложнение только тогда, когда пользователь будит часы.

Причины:
Смысл усложнения заключается в том, что пользователь видит его, как только поднимает часы и активирует дисплей.
Просто нет времени ни на активацию, ни на запуск приложения, ни на загрузку значение в реальном времени, чтобы отобразить его как усложнение.
Таким образом, данные должны присутствовать прежде, чем пользователь увидит циферблат с усложнением.
В во многих случаях это можно обеспечить, если данные не меняются слишком часто:
В watchOS можно запланировать фоновые задачи через определенные промежутки времени, которые загружают фактические данные с сервера. В вашем случае вы хотите запланировать регулярно (в вашем случае каждые 5 минут) WKApplicationRefreshBackgroundTask < / a>, чтобы загрузить фактическое значение, но из-за энергопотребления количество задач ограничено:

Запланированы задачи фонового обновления приложения. Как правило, система выполняет примерно одну задачу в час для каждого приложения в доке (включая приложение, которое использовалось последним). Этот бюджет распределяется между всеми приложениями на док-станции. Система выполняет несколько задач в час для каждого приложения с усложнением на активном циферблате. Этот бюджет распределяется между всеми усложнениями на циферблате. После того, как вы исчерпаете бюджет, система откладывает ваши запросы до тех пор, пока не освободится больше времени.

Таким образом, на watchOS нет возможности делать это с частотой 1 раз в 5 минут.

Можно попробовать сделать это через iOS и отправить новые данные о сложности с помощью func transferCurrentComplicationUserInfo(_ userInfo: [String : Any] = [:]) -> WCSessionUserInfoTransfer, но документы говорят:

Если усложнение находится на активном циферблате, вам дается 50 переводов в день.

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

person Reinhard Männer    schedule 30.04.2020