- Отправка уведомлений на основе местоположения
- Получение уведомлений, когда друг прибудет в определенное место, покинет его или не будет в нем находиться
- Что умеет геолокация на ios в бэкграунд-режиме
- Provisional always
- When in use once
- Воспроизведение звукового сигнала
- Выберите, с какого устройства делиться геопозицией
- Дополнительная помощь
- Другие возможности
- Изменение устройства для публикации геопозиции
- Как определить местоположение iphone и ipad даже после полной разрядки аккумулятора
- Коротко про особенности работы в бэкграунд-режиме
- Наименование геопозиции
- Непрерывное отслеживание геопозиции при наступлении события
- Отключение запросов на дружбу
- Отключение предоставления данных о геопозиции
- Отключение запросов на дружбу
- Отметка устройства как пропавшего или включение режима пропажи для личной вещи
- Что произойдет, если вы включите режим пропажи для личной вещи
- Отслеживание геопозиции друзей
- Поиск друзей
- Другие возможности
- Получение уведомлений, когда друг прибудет в определенное место, покинет его или не будет в нем находиться
- При использовании ios 12 или более ранней версии либо macos mojave или более ранней версии
- Разбираемся в статусах и состояниях авторизации
- Руководство пользователя ipad
- Смена статуса авторизации: новые возможности в ios 15
- Управление информацией о геопозиции на iphone
Отправка уведомлений на основе местоположения
Начиная с iOS 14 и macOS Big Sur, можно задавать повторяющиеся уведомления на основе местоположения. Это позволит вам узнавать, когда кто-либо прибудет в определенное место или покинет его, а также если не будет находиться в определенном месте в конкретный период времени.
Получение уведомлений, когда друг прибудет в определенное место, покинет его или не будет в нем находиться
- Откройте приложение «Локатор» и перейдите на вкладку «Люди».
- Выберите человека, с которым вы хотите делиться уведомлениями.
- Прокрутите вниз и коснитесь «Добавить» в разделе «Уведомления».
- Коснитесь «Уведомить меня», чтобы получать уведомления при изменении местоположения друга*. Коснитесь «Уведомить друга», чтобы уведомлять друга об изменении вашего местоположения.
- В разделе «Когда» выберите «Приходит», «Уходит» или «Не в месте». Если вы делитесь изменением местоположения, выберите «Я прихожу» или «Я ухожу».
- В разделе «Геопозиция» коснитесь нужного пункта, чтобы выбрать свою текущую геопозицию, либо коснитесь пункта «Новая геопозиция», чтобы выбрать другую.

- В разделе «Частота» выберите «Только один раз» или «Каждый раз».
* Когда вы создадите уведомление на основе местоположения, ваш друг будет получать уведомления.
Что умеет геолокация на ios в бэкграунд-режиме
Работа с геолокацией в состоянии, когда приложение открыто, обычно не вызывает трудностей. Сейчас мы используем эту возможность для показа ближайшей пиццерии. Гораздо больший интерес и сложность представляет работа с геолокацией в бэкграунд-режиме. Эти возможности можно поделить на две группы:
1. Непрерывное отслеживание геопозиции после сворачивания приложения. Например, клиент делает заказ на пути в ресторан, сворачивает приложение. Мы понимаем, что клиент придет через 15 минут, поэтому начинаем готовить ему пиццу. Пока приложение открыто, подписываемся на изменения геопозиции.
var locationManager = CLLocationManager()
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.distanceFilter = 7Далее устанавливаем Capabilities — Background Mode:
В коде необходимо выставить
locationManager.allowsBackgroundLocationUpdates = trueОбязательно нужно отключить автоматическую паузу, иначе система может остановить трекинг в бэкграунде и запустить его больше не удастся:
locationManager.pausesLocationUpdatesAutomatically = falseЗапускаем отслеживание геопозиции:
locationManager.startUpdatingLocation()После сворачивания приложения система покажет индикацию в виде синей стрелки в статус-баре (для устройств без чёлки статус-бар станет синим).
Приложение будет отслеживать геопозицию в запущенном состоянии до тех пор, пока мы не остановим отслеживание, либо пока пользователь не закроет приложение принудительно.

Для данного способа достаточно авторизации When In Use. При авторизации с типом Always система не будет показывать синюю индикацию. Подробнее про авторизацию поговорим далее.
2. Получение геопозиции при возникновении событий смены локации. Например, когда клиент проходит недалеко от пиццерии, он получает пуш-уведомление об актуальных акциях именно в ней.
Этот способ умеет запускать приложение, даже если оно было выгружено из памяти. После запуска мы можем получить текущую геолокацию. Для этого мы должны подписаться на некоторые события, находясь в запущенном состоянии.
К таким событиям относятся:
Для данного способа требуется авторизация типа Always.
Provisional always
Из схемы видно, что самое труднодоступное состояние — Always. Пользователь должен дважды увидеть алерт и оба раза дать согласие. Provisional always хоть и имеет статус authorizedAlways, но по своим возможностям эквивалентен When In Use.
Для перехода в состояние Provisional Always нужно вызвать requestAlwaysAuthorization() и выбрать «При использовании». Система покажет такой же алерт, как и при вызове requestWhenInUseAuthorization():

В будущем пользователь увидит алерт, в котором система предложит либо переключиться на Always, либо оставить на When In Use. В документации говорится, что это произойдёт в момент, когда система попытается запустить приложение при наступлении одного из событий (например, пользователь зашёл в регион). Как правило, это происходит, когда пользователь находится на главном экране iPhone.
The second prompt displays when Core Location prepares to deliver an event to your app requiring CLAuthorizationStatus.authorizedAlways.

Такое поведение больше похоже на неожиданное спам-сообщение. Пользователь уже давно ушёл из контекста нашего приложения. Велика вероятность, что он переключится на When In Use.
Более надёжный способ перейти в состояние Always: сначала получить от пользователя разрешение When In Use и только потом запрашивать Always. Можно попытаться сделать это сразу, последовательно вызывая requestWhenInUseAuthorization и requestAlwaysAuthorization().
Ещё один вариант гарантированно получить Always: сразу отправлять пользователя в настройки. Так, например, делает Telegram.

При активном использовании способа Always iOS покажет пользователю алерт, в котором предложит переключиться обратно на When In Use, либо остаться в Always.

Как можно заметить, схема авторизации в iOS сильно затрудняет сбор данных о том, насколько пользователь доверяет приложению и какой способ авторизации выбирает — та самая проблема, о которой шла речь в начале статьи.
When in use once
Это состояние во многом похоже на When In Use, оно имеет такой же статус authorizedWhenInUse. Но у When In Use Once есть два больших отличия:
Воспроизведение звукового сигнала
- Откройте приложение «Локатор».
- Перейдите на вкладку «Устройства» или «Вещи».
- Выберите пропавшее устройство или личную вещь и нажмите «Воспроизвести звук». Звук не получится воспроизвести, если устройство не подключено к сети. Если трекер AirTag, прикрепленный к личной вещи, находится вне зоны действия Bluetooth, он не воспроизведет звук, пока не окажется в зоне действия сигнала.
В течение 24 часов после последнего использования iPhone также уведомит вас, если вы оставили наушники AirPods или Beats вне зоны действия Bluetooth, когда вы не находитесь в важной геопозиции, например дома или на работе. Узнайте больше о функции «Уведомлять, когда забыто».
Выберите, с какого устройства делиться геопозицией
По умолчанию геопозиция передается с того устройства, с которого выполнен вход в службу семейного доступа. Если нужно передавать геопозицию с другого устройства, выполните эти действия.
- Нажмите «Настройки» > [ваше имя].
- Нажмите «Семейный доступ» > «Поделиться геопозицией».
- Нажмите «Поделиться геопозицией» > «С устройства».
- Выберите устройство, с которого необходимо предоставить доступ.
Дополнительная помощь
- Узнайте, как найти пропавший iPhone, iPad или iPod touch или компьютер Mac, если вы включили функцию «Локатор» до того, как устройство было потеряно или украдено. Вы также можете определить местоположение потерянного устройства Apple Watch, наушников AirPods, поддерживаемого продукта Beats, личной вещи с прикрепленным трекером AirTag или поддерживаемым продуктом стороннего производителя.
- Если функция «Локатор» не была включена до потери или кражи устройства, узнайте, как защитить свою информацию.
- Если вы удалите пропавшее устройство из своей учетной записи после того, как вы стерли данные на нем, блокировка активации будет отключена. После этого постороннее лицо может включить и использовать ваше устройство. Узнать больше.
Другие возможности
Открыв приложение «Локатор», перейдите на вкладку «Люди» и выберите чье-либо имя. Вы можете сделать следующее.
- Можно просмотреть карточку контакта этого человека.
- Выберите «Маршруты», чтобы просмотреть геопозицию в приложении «Карты».
- Можно выбрать вариант «Уведомления», чтобы узнавать об изменении геопозиции человека или уведомлять других о том, что она изменилась.
- Можно добавить человека в список избранных пользователей или удалить его из него. Из списка избранных пользователей невозможно удалить участников группы семейного доступа.
- Можно выбрать вариант «Изменить название геопозиции», чтобы отметить геопозицию.
Изменение устройства для публикации геопозиции
Чтобы изменить устройство для публикации геопозиции, откройте на нем приложение «Локатор». Перейдите на вкладку «Я» и выберите пункт «Брать мою геопозицию с [этого устройства]».
Как определить местоположение iphone и ipad даже после полной разрядки аккумулятора
Платформа iOS 8 получила ряд улучшений по части фирменных сервисов Apple. Касается это и Find My iPhone. Мало, кто знает, но сервис для поиска пропавших и украденных устройств обзавелся специальным режимом «Последняя геопозиция». Он позволяет iPhone и iPad автоматически отправлять данные о своем местоположении перед полной разрядкой.
Соответствующий выключатель находится в меню iCloud –> Найти iPhone. Помимо основного тумблера для включения и отключения сервиса «Найти iPhone» здесь появился новый – «Последняя геопозиция». По умолчанию функция деактивирована. Ее включение приводит к тому, что мобильное устройство будет автоматически отправлять геолокационные данные на сервис Apple в момент разрядки аккумулятора. Таким образом, пользователь с более высокой вероятностью сможет найти потерянный iPhone или iPad. Последние известные координаты будут храниться в iCloud в течение 24 часов после полного выключения гаджета.
Конечно, идеальной в этом смысле была бы отправка геолокационных данных перед каждым выключением iOS-устройств, на тот случай, если злоумышленник попытается таким образом скрыть свое местонахождение. Тем не менее, если устройство было потеряно самим пользователем, с активной функцией «Последняя геопозиция» шансы на его возвращение намного выше.
Чтобы определить местоположение iPhone, iPad и Mac, достаточно открыть в браузере сайта iCloud.com, залогиниться под своей учетной записью и перейти в раздел Найти iPhone. Сервис покажет местоположение всех гаджетов, ассоциированных с этим аккаунтом.
Коротко про особенности работы в бэкграунд-режиме
Непрерывное отслеживание геолокации:
Примеры приложений: приложения такси, навигаторы, фитнес-трекеры.
Разовое получение геолокации при наступлении события:
Примеры приложений: Telegram (функционал «поделиться геопозицией»).
Наименование геопозиции
При желании можно присваивать названия часто посещаемым местам.
- Откройте приложение «Локатор» и перейдите на вкладку «Я».
- Прокрутите вниз и выберите пункт «Изменить название геопозиции».
- Выберите вариант «Дом», «Работа», «Учеба», «Спортзал» или «Нет».
Можно также выбрать вариант «Добавить этикетку», чтобы указать название для своей геопозиции. Просто введите название и нажмите «Готово».
Непрерывное отслеживание геопозиции при наступлении события
Допустим, мы хотим узнать скользящее значение скорости пользователя в момент, когда он зашёл в определённый регион. При этом приложение может быть выгружено из памяти.
Про скользящее
Значение скорости из CLLocation (location.speed) зачастую неточное. В качестве средней скорости можно использовать скользящее значение, например скорость за последние 50 метров.
Авторизуем геолокацию с типом Always. Далее подписываемся на событие входа в регион:
locationManager.startMonitoring(for: pizzeriaRegion)И при получении события начинаем трекать геолокацию, как в способе 1:
func locationManager( _ manager: CLLocationManager, didEnterRegion region: CLRegion ) { manager.startUpdatingLocation() }Я провёл несколько тестов на устройстве. В момент посещения региона приложение запускается, но система довольно быстро переводит его в состояние suspended, несмотря на то, что мы сконфигурировали и запустили CLLocationManager для подробного отслеживания геопозиции. Продолжать отслеживать геопоцизию непрерывно и рассчитывать скорость не удастся.
Отключение запросов на дружбу
- Откройте приложение «Локатор».
- Перейдите на вкладку «Я».
- Отключите параметр «Запросы на дружбу».
Отключение предоставления данных о геопозиции
Чтобы прекратить предоставление сведений о своем местоположении всем людям, выполните следующие действия. Вы также можете прекратить предоставлять доступ конкретному человеку или отключить параметр «Запросы на дружбу».
- Откройте приложение «Локатор».
- Перейдите на вкладку «Я».
- Отключите функцию «Делиться геопозицией».
- Откройте приложение «Локатор» и перейдите на вкладку «Люди».
- Выберите человека, с которым вы больше не желаете делиться геопозицией.
- Прокрутите вниз и выберите пункт «Не делиться геопозицией».
Отключение запросов на дружбу
- Откройте приложение «Локатор».
- Перейдите на вкладку «Я».
- Отключите параметр «Запросы на дружбу».
Отметка устройства как пропавшего или включение режима пропажи для личной вещи
- Откройте приложение «Локатор» и перейдите на вкладку «Устройства» или «Вещи».
- Выберите пропавшее устройство или личную вещь.
- Прокрутите экран вниз до пункта «Отметить как пропавшее» и выберите «Активировать» либо до пункта «Режим пропажи» и выберите «Включить».
- Следуйте инструкциям на экране, если вы хотите, чтобы ваша контактная информация отображалась на пропавшем устройстве или личной вещи, или если вы хотите ввести собственное обращение к нашедшему устройство с просьбой связаться с вами.
- Нажмите «Активировать».
Что произойдет, если вы включите режим пропажи для личной вещи
Когда вы включите режим пропажи для личной вещи, к которой прикреплен трекер AirTag или другой поддерживаемый продукт стороннего производителя, вы сможете отправить сообщение со своим номером телефона или адресом электронной почты. Если кто-то найдет ваш трекер AirTag, он сможет прочитать сообщение на открывшейся веб-странице found.apple.com, если приложит верхнюю часть своего устройства iPhone или смартфона с поддержкой NFC к AirTag. Если кто-то найдет ваш поддерживаемый продукт стороннего производителя, он также сможет прочитать сообщение. Для этого нужно открыть приложение «Локатор» на своем устройстве iPhone, iPad или iPod touch, перейти на вкладку «Вещи», нажать «Узнать, чья это вещь», затем выбрать вещь из списка.
Отслеживание геопозиции друзей
Если кто-либо делится с вами сведениями о своей геопозиции или вы просите об этом и этот человек дает на это согласие, его геопозицию можно отслеживать.
Поиск друзей
- Откройте приложение «Локатор» и перейдите на вкладку «Люди».

- На вкладке «Люди» выберите имя друга, который делится с вами сведениями о своей геопозиции.
- Выберите вариант «Маршруты», чтобы открыть приложение «Карты», и следуйте маршруту, чтобы добраться до места, где находится ваш друг.
Если под именем вашего друга отображается ваше местоположение, значит, вы не отслеживаете, где он находится. Если отображается сообщение «Геопозиция не найдена», местоположение этого человека не удается отследить.
Другие возможности
Открыв приложение «Локатор», перейдите на вкладку «Люди» и выберите чье-либо имя. Вы можете сделать следующее.
- Можно просмотреть карточку контакта этого человека.
- Выберите «Маршруты», чтобы просмотреть геопозицию в приложении «Карты».
- Можно выбрать вариант «Уведомления», чтобы узнавать об изменении геопозиции человека или уведомлять других о том, что она изменилась.
- Можно добавить человека в список избранных пользователей или удалить его из него. Из списка избранных пользователей невозможно удалить участников группы семейного доступа.
- Можно выбрать вариант «Изменить название геопозиции», чтобы отметить геопозицию.
Получение уведомлений, когда друг прибудет в определенное место, покинет его или не будет в нем находиться
- Откройте приложение «Локатор» и перейдите на вкладку «Люди».
- Выберите человека, с которым вы хотите делиться уведомлениями.
- Прокрутите вниз и коснитесь «Добавить» в разделе «Уведомления».
- Коснитесь «Уведомить меня», чтобы получать уведомления при изменении местоположения друга*. Коснитесь «Уведомить друга», чтобы уведомлять друга об изменении вашего местоположения.
- В разделе «Когда» выберите «Приходит», «Уходит» или «Не в месте». Если вы делитесь изменением местоположения, выберите «Я прихожу» или «Я ухожу».
- В разделе «Геопозиция» коснитесь нужного пункта, чтобы выбрать свою текущую геопозицию, либо коснитесь пункта «Новая геопозиция», чтобы выбрать другую.

- В разделе «Частота» выберите «Только один раз» или «Каждый раз».
* Когда вы создадите уведомление на основе местоположения, ваш друг будет получать уведомления.
При использовании ios 12 или более ранней версии либо macos mojave или более ранней версии
Приложение «Локатор», объединяющее возможности приложений «Найти iPhone» и «Найти друзей», входит в операционные системы iOS 13, iPadOS, macOS Catalina и их более поздние версии. Вот что вы можете сделать, если у вас установлена iOS 12, macOS Mojave или watchOS 5 или их более ранние версии:
Разбираемся в статусах и состояниях авторизации
В CoreLocation есть 2 запроса для разрешения на использование геолокации:
И 5 возможных статусов авторизации:
public enum CLAuthorizationStatus : Int32 { case notDetermined = 0 case restricted = 1 case denied = 2 case authorizedAlways = 3 case authorizedWhenInUse = 4
}В действительности состояний авторизации больше, чем статусов, а переходы между ними кажутся запутанными. Распутываем авторизацию в следующей схеме:
Значение переменной authorizationStatus:
На схеме есть два состояния, которые никак не отражены в статусе authorizationStatus: When In Use Once и Provisional Always. Рассмотрим их поближе.
Руководство пользователя ipad
- Добро пожаловать!
- Поддерживаемые модели
- 12,9‑дюймовый iPad Pro (5‑го поколения)
- iPad Pro (12,9 дюйма, 4-го поколения)
- iPad Pro (12,9 дюйма, 3-го поколения)
- iPad Pro (11 дюймов, 3-го поколения)
- iPad Pro (11 дюймов, 2-го поколения)
- iPad Pro (11 дюймов, 1-го поколения)
- iPad Pro (12,9 дюйма, 1-го и 2-го поколения)
- iPad Pro (10,5 дюйма)
- iPad Pro (9,7 дюйма)
- iPad Air (4-го поколения)
- iPad Air (3-го поколения)
- iPad Air 2
- iPad (9‑го поколения)
- iPad (8-го поколения)
- iPad (7-го поколения)
- iPad (6-го поколения)
- iPad (5-го поколения)
- iPad mini (6‑го поколения)
- iPad mini (5-го поколения)
- iPad mini 4
- Что нового в iPadOS 15
- Быстрые команды
- Акции
- Советы
- Авторские права
Смена статуса авторизации: новые возможности в ios 15
В iOS 15 появился фреймворк CoreLocationUI. В Apple стремятся упростить опыт пользователя в сценариях, когда необходимо разово получить геопозицию. Теперь можно использовать специальную кнопку CLLocationButton (LocationButton в SwiftUI), при нажатии на которую система сама спросит у пользователя разрешение, если это требуется.

Если текущий статус авторизации позволяет хоть какое-то использование геолокации (authorizedAlways, authorizedWhenInUse), то при нажатии на кнопку ничего не произойдёт. В противном случае логика смены статусов авторизации выглядит так, как показано на схеме:
Если пользователь однажды согласился дать разрешение на разовое использование геопозиции, то в другие сессии при нажатии на кнопку приложение будет сразу получать разрешение When In Use Once, без алертов.
Самая интересная фишка здесь — это возможность скинуть состояние авторизации в неопределённое (notDetermined), даже если ранее пользователь запретил использование геолокации.
Простой тест это подтверждает. Выполняем requestWhenInUseAuthorization(), запрещаем использование геолокации. Далее нажимаем на CLLocationButton, разрешаем разовое использование (нажимаем ОК). Перезапускаем приложение, чтобы статус авторизации cбросился в notDetermined. Снова выполняем requestWhenInUseAuthorization(), появляется алерт.
В предыдущих версиях повторный показ алерта был возможен только в случае, если пользователь сам перейдёт в настройки приложения и вручную сбросит запрет на использование геолокации. Таким образом, новый фреймворк даёт разработчикам возможность восстановить (возможно, навсегда потерянный) доступ приложения к геолокации. Задача разработчика — предоставить пользователю новую ценность при запросе авторизации, чтобы избежать повторного запрета.
Новые возможности в iOS 15 потенциально сокращают количество надоедливых алертов, а разработчикам не нужно писать обработку различных сценариев авторизации. Подробнее здесь: Meet the Location Button WWDC 2021.
Управление информацией о геопозиции на iphone
Вы можете настраивать информацию о Вашей геопозиции на iPhone и в приложениях.
Чтобы определить Ваше местоположение при прокладывании маршрута, организации встреч и т. д., Службы геолокации используют информацию (если есть) из сетей GPS, подключений Bluetooth, локальных сетей Wi-Fi и сотовой сети. Когда любое приложение использует Службы геолокации, в меню статуса отображается значок
.
При настройке iPhone отображается запрос, хотите ли Вы включить Службы геолокации. Позже в любой момент можно включить или отключить Службы геолокации.
Когда приложение впервые пытается использовать данные о геопозиции Вашего iPhone, отображается запрос с объяснением. Некоторые приложения могут запросить данные о Вашей геопозиции только один раз. Другие приложения могут запросить доступ к Вашей настоящей геопозиции и продолжить запрашивать доступ в будущем. Вы можете разрешить или запретить доступ к геопозиции, а также изменить доступ приложения позже.


