Поделитесь AsyncStorage из родного приложения iOS с помощью Apple Watch

Я разрабатываю основное приложение с помощью React Native и Apple Watch со Swift.

Основное приложение (React Native) использует AsyncStorage для хранения некоторых значений, которые затем используются в качестве параметров для выборки, отображающей список.

После запуска симулятора я обнаружил внутри manifest.json

~/Library/Developer/CoreSimulator/Devices/D10E869B-040B-446F-9B8B-754F111442EC/data/Containers/Data/Application/AC837AFE-312B-4861-906D-EC9EEE7D029B/Document s/RCTAsyncLocalStorage_V1

с данными внутри.

Мне нужно получить доступ к этим значениям в Apple Watch в Xcode, чтобы выполнять ту же работу, что и приложение для iOS. Как получить доступ к этим данным?


person João Belo    schedule 13.01.2018    source источник


Ответы (1)


Поскольку приложения Apple Watch работают независимо от приложения iOS, начиная с watchOS 2, на самом деле нет возможности напрямую получить доступ к данным, хранящимся локально на iPhone — вам нужно будет поддерживать некоторую форму связи между вашими приложениями iOS и watchOS.

Платформа, предназначенная для этого, называется WatchConnectivity. Я вижу два более-менее подходящих решения для вашего случая:

  • Использование transferFile для передачи файла с устройства iOS на Apple Watch. всякий раз, когда он обновлялся. Жизнеспособность этой опции сильно зависит от размера вашего файла.
  • Или вы можете просто использовать updateApplicationContext для передачи уже сериализованных данных вместо передача необработанного файла JSON — опять же, сильно зависит от ваших конкретных потребностей.

К сожалению, я не знаю, как WatchConnectivity должен работать с ReactNative. Если вы хотите более подробно познакомиться с этой структурой — я настоятельно рекомендую посмотреть это потрясающее видео с WWDC 2015.

person Oleg Dreyman    schedule 14.01.2018