Лучший способ получить данные о местоположении от Apple Watch Complication? - PullRequest
0 голосов
/ 17 октября 2018

Каков предписанный метод для определения широты и долготы пользователя по сложности?

Я пытался создать экземпляр диспетчера местоположения внутри контроллера сложности и запросить местоположение, используя requestLocation и startUpdatingLocation.,Никто не отвечает обновлением.

Я использую watchOS 4.0 и iOS 9.3.

Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Несколько важных моментов:

  1. Не выполняйте никаких вычислений или асинхронных запросов в контроллере Complication, вы очень быстро съедаете свой бюджет на обновление сложности за день плюс ОСприостановит процесс через несколько секунд.

  2. Вы можете использовать Базовое расположение в своем Делегате Расширения либо на переднем плане (без ограничений), либо в фоновом режиме.Если вы хотите использовать его в фоновом режиме, вам нужно установить UIBackgroundModes для местоположения в Info.plist вашего расширения WatchKit И для свойства allowBackgroundLocationUpdates вашего менеджера местоположений установить значение true.Не забудьте установить значение false, если вам не нужны постоянные обновления местоположения.Например, если вам нужно запросить местоположение один раз в фоновом режиме, отключите это свойство, как только вы получите исправление местоположения.

  3. Вы можете обновлять свою сложность столько раз в течение дня(Apple не публикует точное число).Вы можете ожидать, что сможете обновить его по крайней мере 4-6 раз в час, возможно, больше, но определенно не каждую минуту.Таким образом, вы можете забыть об отображении любых данных о вашем осложнении в реальном времени.

0 голосов
/ 17 октября 2018

Усложнение само по себе является только элементом отображения для пользовательского интерфейса.Любая необходимая обработка должна быть в WKExtensionDelegate с использованием WKRefreshBackgroundTask для обработки.Читайте также о фоновых режимах.

...