Я работаю над созданием iOS-приложения Swift, которое включает iBeacons для предоставления данных в приложение WatchKit (OS 1). Приложение загружает данные из JSON в tableView на основе того, установлен ли маяк CLProximity
на .Near
или .Immediate
. Приложение iOS при запуске может обнаруживать маяки без проблем, заполнять переменную и делать ее доступной для приложения WatchKit. Однако, когда приложение WatchKit пытается запросить данные маяка из приложения с помощью application:handleWatchKitExtensionRequest
, когда iOS не был запущен первым, объект для маяков возвращается как nil
. Мое предположение заключается в том, что когда приложение закрыто на телефоне, вызов WatchKit для открытия родительского приложения НЕ запускает код ранжирования маяка, который хранится в AppDelegate. Перемещение кода инициализации маяка в application:handleWatchKitExtensionRequest
не устраняет проблему.
Как можно было бы построить приложение (в общих чертах, я знаю достаточно кода, который мне не обязательно нужен для разбивки по строкам, хотя вы можете это сделать, если считаете, что это поможет другим), где
- Пользователь приложения запускает приложение-наблюдатель для проверки данных поблизости.
- Приложение watch запрашивает список ближайших/ближайших маяков из приложения iOS.
- Приложение iOS возвращает список маяков Основные строки для маяков, которые соответствуют этим критериям.
- Оптимально приложение iOS позволяет Наблюдающему приложению узнать, когда этот список изменится, и приложение WatchKit обновится.
У меня такое чувство, что часть моего решения лежит в DarwinNotification и с регистрацией наблюдателей, которые не являются тем, с чем я работал много раньше, но примеров StackOverflow достаточно, что я могу их реализовать, если это так, Я предполагаю, что реальная проблема заключается в том, как собирать данные маякового радиосигнала, когда приложение iOS еще не запущено.