Приложение Flutter watchOS не может получить данные сеанса WCSession

#swift #flutter #apple-watch #watchconnectivity

Вопрос:

У меня есть приложение Flutter, и я добавил приложение-компаньон Apple Watch, которое поддерживает связь с приложением Flutter.

Я следил за всем из этой статьи: https://medium.com/kbtg-life/adding-apple-watch-to-flutter-app-via-flutter-method-channel-f1443532d94e

Единственная разница в том, что я добавил askForData метод, который в основном отправляет сообщение Flutter для метода представлений init : «Эй, я только что открылся, мне нужны некоторые данные».

У меня уже есть несколько представлений в приложении «Часы», с навигацией и т. Д. Он askForData прекрасно работает, и Флаттер сразу же отправляет данные обратно на часы, но.

В каждом представлении у меня есть это:

 @ObservedObject var data: WatchViewModel

init() {
    print("CONTENTVIEW INIT")
    data = WatchViewModel()
    data.askForData(for: .askForData)
}
 

и в представлении я отображаю данные:

 VStack {
    Text(data.carName)
    Text(data.batteryRange)
    Text(data.batteryPercent)
}
 

В представлении содержимого (которое является моим первым начальным представлением) все они равны 0, но если я перейду к представлению B, то все они будут содержать правильные данные.

Однако, если я перейду к просмотру C, опять же, все равно 0.

(0 и «0» являются значениями по умолчанию для полей, если они не получают данные)

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