Обновление Apple Watch Complication путем извлечения данных с использованием URL-запроса - PullRequest
1 голос
/ 26 марта 2019

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

Я пытаюсь получить данные из Watch.Я делаю это, планируя WKRefreshBackgroundTask.Когда запускается эта задача, я запускаю сеанс URL для получения некоторых данных JSON с сервера.

После того, как данные были успешно извлечены, я завершаю WKApplicationRefreshBackgroundTask, вызывая его setTaskCompletedWithSnapshot(false).

Кажется, что все это работает нормально, но я бы лучше создалWKURLSessionRefreshBackgroundTask после WKApplicationRefreshBackgroundTask, чтобы загрузить его в фоновом режиме и тратить меньше времени на фоновые задачи.Я думаю, что это невозможно, я не загружаю и не загружаю файлы.Если я правильно понимаю, WKURLSessionRefreshBackgroundTask с URLSessionConfiguration.background(withIdentifier:) можно использовать только для URLSessionUploadTask с или URLSessionDownloadTask с, поэтому мне пришлось забыть об этой идее.(Пожалуйста, исправьте меня, если я неправильно понял).

Теперь самая большая проблема, с которой я сталкиваюсь, заключается в том, что когда часы заблокированы (сняты с запястья, надеты зарядная шайба и т. Д.), Запросы URL не являютсявыполняется.И, таким образом, данные не были обновлены.Как мы должны иметь дело с этим?Компиляция действий просто темнеет, когда часы блокируются, и как только вы разблокируете часы, они перезагружаются.Что мы можем сделать, чтобы понять, что Часы заблокированы / разблокированы?

Это даже правильный подход для извлечения данных из Часов с помощью WKApplicationRefreshBackgroundTask, или лучше разбудить телефон и заставить телефон запрашивать данные с помощью WatchConnectivity?И если так: какие функции WCSessionDelegate вы бы использовали для достижения этой цели?

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

Я читал множество статей и смотрел несколько видео.Тем не менее, мне все еще очень трудно найти правильную архитектуру для получения данных компиляции с сервера и получить эту надежную работу.

Надеюсь, кто-то может пролить немного света на этот вопрос.

...