Есть ли делегаты для мониторинга прогресса при передаче данных из WatchO в iO с помощью WatchConnectivity?

Я использую WatchConnectivity для передачи файлов с Apple Watch на устройство iOS (это направление). Сама передача в порядке. Я отправляю файл из Apple Watch, вызывая функцию передачи файла:

session?.transferFile(url, metadata: metadata)

и я могу сохранить файл на устройстве iOS. Но я хотел бы показать прогресс передачи пользователям на устройстве iOS. Например, пользователь нажимает кнопку "Загрузить файл" на iPhone, и я хотел бы показать некоторую панель прогресса пользовательского интерфейса. Это возможно? Потому что я нашел только этот делегат, который вызывается, когда передача сделана:

func session(_ session: WCSession, didReceive file: WCSessionFile) {

}

0 ответов

В WCSessionFileTransfer экземпляр, возвращенный

session?.transferFile(url, metadata: metadata)

имеет NSProgress *progress свойство, вы можете использовать его для отслеживания прогресса в Watch App w/ a NSTimer экземпляр и отправить живое сообщение (WCSession-sendMessage:...) в приложение для iPhone, чтобы обновить соответствующие элементы пользовательского интерфейса.


Примечание:

В progress доступен только с iOS 12.0 и WatchOS 5.0.

API_AVAILABLE(ios(12.0), watchos(5.0))
Другие вопросы по тегам