Как включить гео-уведомления на iPhone

Обновлено: 05.10.2022

Можно ли использовать push-уведомления с географической привязкой на iOS, когда приложение закрыто (не в фоновом режиме)?

Я заинтересован в создании приложения, в котором пользователь будет выбирать позицию на карте, а затем, если он/она, например, находится близко к этой области, будет запущено локальное push-уведомление на основе географического положения.

Однако возможна ли эта "идея"? Может ли GPS запускаться и сравнивать координаты, когда приложение убито и запускаться и уведомлять пользователя, когда оно на месте? Есть ли учебник/статья/дополнительная информация по этому вопросу, которую я мог бы прочитать?

Большая часть информации, которую я читал в Интернете, была больше похожа на общие идеи реализации без какой-либо конкретной информации по этому вопросу.

Почему вы не хотите запускать приложение в фоновом режиме (имеется в виду после закрытия приложения)? Я применил ту же концепцию в своем приложении с функцией фонового запуска. Можно подробнее .

например. Допустим, пользователь делает напоминание и хочет видеть его, когда идет к бабушке. Это может быть на следующей неделе. наверняка телефон мог быть сброшен или он мог удалить приложение из фона. Поэтому мне нужно, чтобы толчок запускался, даже если приложение не работает в фоновом режиме. Можете ли вы сказать мне название приложения, мне действительно интересно посмотреть, что вы реализовали :)

<р>1. GPS не работает, когда приложение убито, поэтому это невозможно. 2. Как вы комментируете пример, со стороны CMS вы можете установить push-уведомление о времени напоминания. В веб-сервисе вы можете разработать алгоритм, который отправляет push-уведомление, как вы установили, через мобильное напоминание.

1 Ответ 1

Для отслеживания местоположения пользователя, когда приложение не запущено (т. е. было ранее закрыто), есть два варианта:

Из руководства по программированию приложений для iOS в разделе "Отслеживание местоположения пользователя":

Служба определения местоположения со значительными изменениями настоятельно рекомендуется для приложений, которым не требуются высокоточные данные о местоположении. С помощью этой службы обновления местоположения генерируются только при значительном изменении местоположения пользователя; таким образом, он идеально подходит для социальных приложений или приложений, которые предоставляют пользователю некритическую информацию, относящуюся к местоположению. Если приложение приостанавливается при обновлении, система пробуждает его в фоновом режиме для обработки обновления. Если приложение запускает эту службу, а затем закрывается, система автоматически перезапускает приложение, когда становится доступным новое местоположение. Эта служба доступна в iOS 4 и более поздних версиях и доступна только на устройствах с поддержкой сотовой связи.

Однако, согласно справочнику по классу CLLocationManager, он не слишком точен и обновляется нечасто:

Примечание. Приложения могут ожидать уведомления, как только устройство переместится на 500 или более метров от предыдущего уведомления. Не следует ожидать уведомлений чаще, чем раз в пять минут. Если устройство может получать данные из сети, диспетчер местоположения с большей вероятностью будет своевременно доставлять уведомления.

Региональный мониторинг работает аналогичным образом, включая перезапуск приложения после закрытия, но с более высокой точностью (в зависимости от доступности сетей Wi-Fi и вышек сотовой связи):

Конкретные пороговые расстояния определяются оборудованием и доступными в настоящее время технологиями определения местоположения. Например, если Wi-Fi отключен, мониторинг региона будет значительно менее точным. Однако в целях тестирования можно предположить, что минимальное расстояние составляет примерно 200 метров.

Еще одно соображение, связанное с мониторингом региона, заключается в том, что (согласно справочнику по классу CLLocationManager) уведомления о входе в регион и выходе из него могут быть получены только через 3–5 минут или около того после пересечения границ региона.

В зависимости от фактических требований мониторинг региона можно использовать для получения «приблизительного» местоположения, а затем, когда пользователь находится в определенном регионе, запустить более точную службу на основе GPS в диспетчере местоположений. Когда пользователь покидает интересующий регион, отключите службу GPS для экономии заряда батареи и снова вернитесь к службе мониторинга приблизительного местоположения (т. е. мониторингу региона). Вот базовая реализация:

SomeViewController.m:

Не забудьте добавить соответствующие записи в plist-файл приложения, чтобы приложение работало в фоновом режиме с доступом к соответствующим ресурсам:


Когда была выпущена iOS 5, Apple представила геозоны — возможность определять близость к географическому местоположению. Сегодня в iOS6 с приложением «Напоминания» пользователи могут настроить напоминание, чтобы при входе или выходе из географического местоположения они получали уведомление на свой iPhone. Вот как это сделать.

Что вам понадобится

У вас должен быть iPhone 4 или более поздней версии.Рекомендуется iOS 6 или более поздней версии с приложением «Напоминания». На iPad, даже с сотовой связью и GPS, в настоящее время эта функция не включена. (Подробнее об этом ниже.)

Зачем мне это использовать?

Настройка геозоны может пригодиться, когда вы хотите напомнить себе о покупке чего-нибудь в следующий раз, когда будете в продуктовом магазине. Или вы можете настроить напоминание, чтобы задать кому-то вопрос при следующем посещении. Другое использование — настроить стандартное напоминание об уходе, когда вы выходите из дома: чековая книжка? темные очки? (Или, в случае запретительного судебного приказа.)

Как сделать

В следующем примере показано, как настроить напоминание о прибытии в определенное географическое место. Идея состоит в том, что вокруг географического местоположения установлен виртуальный периметр, и когда вы проникаете за периметр, вы получаете предупреждение. Начните с поиска приложения «Напоминания» на iPhone и выполните следующие действия.


  1. Нажмите на приложение «Напоминания» на iPhone.
  2. Нажмите кнопку "+" в правом верхнем углу.
  3. Введите текстовую метку для напоминания.
  4. Нажмите символ ">" справа от текста.
  5. Включите параметр "Напомнить мне в определенном месте".
  6. Коснитесь расположения по умолчанию под ним. Вы увидите список возможных местоположений. Если вы не видите то, что хотите, вы можете 1) ввести адрес вручную или 2) нажать белый значок "+" в синем кружке, чтобы выбрать адрес, который уже есть в ваших контактах.
  7. В поле "Примечания" введите сведения об оповещении. Скажем, что-то, что вы хотели купить в этом месте.
  8. Нажмите, чтобы выбрать запись «Когда я приеду». Установите желаемый приоритет.
  9. Нажмите кнопку "Готово" в правом верхнем углу.

Когда вы закончите, это должно выглядеть так:


Теперь, когда вы приблизитесь к этому географическому месту, вы услышите звуковой сигнал и всплывающее уведомление.


Примечание: текст в этом оповещении взят из другого оповещения
, чем указанное здесь.

Затем вы сможете просмотреть напоминание, нажав "Просмотреть".



Если вы пересечете этот периметр, вы получите предупреждение.

Технические примечания

Геозона требует использования служб определения местоположения iOS. Службы определения местоположения используют технику каскадного переноса. Во-первых, он ищет ближайшую точку доступа Wi-Fi в известном месте. Это быстро. Затем, если на устройстве есть сотовая радиосвязь, оно попытается выполнить триангуляцию от вышек сотовой связи. Наконец, если системе требуется более высокая точность или она не может найти точку доступа или вышку сотовой связи, она включит GPS-радио для лучшего решения.

Не у каждого iDevice есть сотовая радиосвязь. У всех айфонов так. Те, у кого есть, также имеют GPS, например iPad с сотовой связью. Однако Apple решила не включать геозону ни на одной модели iPad. Я спросил об этом разработчика Эндрю Стоуна из Stone Design Software, и он сказал мне: «Интересно, чтобы избежать путаницы и отразить тот факт, что большая часть их продаж iPad — это не Wi-Fi + Cellular, а просто ванильный Wi-Fi, они не включили эту функцию на iPad. Это, конечно, ужасно с точки зрения потребителя, поскольку они купили «Кадиллак» [для iPad], но понятно с точки зрения поддержки».

Другими словами, возможно, Apple считает, что полноразмерные iPad не подходят для таких предупреждений о геозонах из-за того, как их носят и используют. Однако г-н Стоун отметил, что появление iPad mini, который поместится в сумочке или брюках карго, может опровергнуть это предположение.

Что касается «расстояния поездки», мистер Стоун указал мне на документацию для разработчиков Apple, в которой говорится:

Конкретные пороговые расстояния определяются оборудованием и доступными в настоящее время технологиями определения местоположения. Например, если Wi-Fi отключен, мониторинг региона будет значительно менее точным. Однако в целях тестирования можно предположить, что минимальное расстояние составляет примерно 200 метров."

Сочетание доступных аппаратных технологий, их эффективности, мощности батареи, мощности вышек сотовой связи, используемого чипа GPS, доступа к небу и т. д., вероятно, приведет к некоторым различиям в пороге "поездки". В моем собственном тестировании с iPhone 5 на широких открытых пространствах порог казался около 100 метров. Некоторые пользователи старых iPhone, вернувшись к iPhone 4, сообщают о разных результатах.

Наконец, мониторинг, необходимый для обнаружения проникновения по периметру, требует значительного заряда батареи. Все, кто использовал эту функцию, сообщали, что время автономной работы ухудшилось.


Вы можете подтвердить, что Службы геолокации работают постоянно, отметив флажок в верхней части дисплея iPhone рядом с уровнем заряда батареи. Как только вы удалите (последнее) напоминание о местоположении, при прочих равных условиях этот флажок исчезнет, ​​что уменьшит расход заряда батареи. Используйте эту функцию с осторожностью, когда вам нужно экономить электроэнергию.

Вы можете обратить внимание на вашу геопозицию на iPhone и в приложениях.

Чтобы определить Ваше местонахождение при прокладывании маршрута, организации встреч и т.д. д., Службы геолокации используют сведения (если есть) из сетей GPS, подключений Bluetooth, сетей Wi-Fi и сотовой сети. Когда любое приложение использует Службы геолокации, в меню отображается значок .

При желании выявляются запросы iPhone, если Вы включаете Службы геолокации. Позже в любой момент можно включить или включить общие службы геолокации.

Когда приложение впервые использует данные о геопозиции вашего iPhone, появляется запрос с представлением. Некоторые приложения могут запросить данные о вашей геопозиции только один раз. Другие приложения могут запросить доступ к существующей геопозиции и продолжить поиск доступа в будущем. Вы можете разрешить или запретить доступ к геопозиции, а также изменить доступ к приложениям позже.

Включение Службы геолокации

Важно! Если Вы выключаете Службы геолокации, многие важные функции iPhone перестанут работать.

Просмотр и изменение доступа к приложениям к информации о геопозиции

Чтобы просмотреть или изменить настройки доступа для приложений или рассмотрения запросов Службы геолокации, коснитесь приложений.

Чтобы понять, как стороннее приложение использует запрашиваемую информацию, ознакомьтесь с условиями и аспектами конфиденциальности. См. статья службы поддержки Apple О конфиденциальности и службах геолокации.

Открытие карты в уведомлениях Службы геолокации

Если Вы всегда разрешаете размещение данных о Вашей геопозиции в фоновом режиме, Вы можете получать уведомления о том, что приложение использует эти данные. (Эти сообщения позволяют отменить разрешение, если вы передумал.)

Когда этот параметр отключен, Вы продолжаете получать уведомления о геопозиции, но карта не отображается.

Просмотр и изменение настроек Службы геолокации для системных служб

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

Геозона — что это вообще такое? Какая-то высокотехнологичная мера по охране государственной границы?

Нет… это технология, которая, среди прочего, позволяет создавать виртуальные границы с помощью устройств с поддержкой GPS и определением местоположения. Технология геозон существует уже несколько лет, но используется только для Бонда, Джеймса Бонда и других подобных. Для остальных из нас, простых смертных, эта технология была доступна на наших iPhone, а также на наших iPad с GPS и сотовой связью.

Вы можете увидеть геозону в действии на своем устройстве iOS с помощью приложения "Напоминания". Недавно я совершенно случайно обнаружил и был рад узнать, что периметр геозоны можно регулировать. Позвольте мне показать вам, как это сделать.

Прежде всего, чтобы все это работало, у вас должны быть включены службы определения местоположения. Чтобы убедиться в этом, выберите «Настройки» > «Конфиденциальность» > «Службы геолокации» .

Панель настроек служб определения местоположения

Убедитесь, что службы геолокации включены глобально и для напоминаний

Там вы найдете главный выключатель; убедитесь, что он включен. Далее вы увидите список всех приложений на вашем устройстве, которые поддерживают службы определения местоположения. Вы можете оставить включенными только те, которые хотите. Вероятно, это хорошая идея, чтобы просмотреть их и настроить параметры. В любом случае прокрутите вниз, пока не найдете «Напоминания», и убедитесь, что службы геолокации включены.

Чтобы все работало, как описано в этой статье, вам также необходимо убедиться, что уведомления включены для приложения "Напоминания". Это делается через Настройки > Центр уведомлений.

Панель настроек Центра уведомлений

Убедитесь, что напоминания включены в набор приложений, использующих службы Notification Services

Убедитесь, что в разделе "Включить" есть пункт "Напоминания". Оттуда вы можете настроить уведомления о напоминаниях так, как вам нужно.

Вернуться к приложению "Напоминания"…

В Напоминаниях вы можете установить так называемые напоминания о местоположении. То есть вы можете получить предупреждение о напоминании в зависимости от того, когда вы прибываете или покидаете место. Вот что такое геозона!

В качестве примера возьмем один из моих собственных сценариев. Я склонен откладывать на потом, когда дело доходит до уборки моего домашнего офиса глубоко в недрах моего дома. Я хочу, чтобы мне автоматически напоминали о работе над этой задачей каждый раз, когда я собираюсь въехать в свой гараж. Благодаря службам геолокации и функциям геозоны, поддерживаемым приложением «Напоминания» на моем iPhone, я получаю уведомление, когда вхожу в заранее определенный радиус периметра, окружающего мой дом.

В разделе "Напоминания" описано, как настроить напоминание о местоположении в зависимости от того, когда вы прибываете или покидаете место:

<р>1. Чтобы добавить новое напоминание, сначала коснитесь одного из списков в нужном месте, а затем коснитесь пустой строки.

<р>2. При редактировании напоминания нажмите кнопку «Информация», чтобы просмотреть список сведений о напоминании. Помните, что для того, чтобы увидеть кнопку «Информация», вы должны нажать на напоминание, чтобы войти в режим редактирования напоминания.

Список дел в напоминаниях

Кнопка "Информация" отображается только при нажатии на напоминание

<р>3. На панели сведений включите переключатель Напомнить мне в определенном месте.

Панель сведений о напоминании

Нажав кнопку "Информация", вы перейдете на панель сведений о напоминании

<р>4. Нажмите «Местоположение», затем выберите местоположение из списка или введите адрес.

<р>5. Выберите, хотите ли вы получать уведомления по прибытии или при выходе из адреса.

Панель сведений о местонахождении напоминания

Выберите или введите местоположение и перетащите периметр геозоны, чтобы изменить его

<р>6. Вы можете принять предопределенный периметр геозоны или изменить его, перетащив черную точку, определяющую край геозоны, внутрь или наружу. Это устанавливает приблизительное расстояние, на котором вы хотите получить напоминание.

<р>7. Нажмите «Подробности» в левом верхнем углу, чтобы вернуться на панель «Подробности», где вы можете установить другие параметры, такие как приоритет, список, в котором вы хотите, чтобы это напоминание отображалось, и любые примечания, касающиеся этого напоминания.

<р>8. Нажмите «Готово» в правом верхнем углу. Готово!

Готовое напоминание в списке дел напоминаний

Когда напоминание настроено, вся информация отображается в главном приложении "Напоминания".

Возможно, будет полезно узнать, что вы можете добавить общие местоположения на свою личную информационную карточку в приложении "Контакты". Когда вы устанавливаете напоминание о местоположении, места в списке включают адреса с вашей карты. Например, добавьте в свою карточку свой рабочий, домашний и другие любимые адреса, чтобы их можно было легко найти в Напоминаниях.

И наконец, не забывайте, что вы также можете временно отключить все уведомления, включив режим "Не беспокоить". Это настраивается в «Настройки» > «Не беспокоить». Подробнее читайте в моей статье о TMO «Настройка и использование функции «Не беспокоить» в iOS»

Почему бы не ознакомиться с технологией Geofence? Двигаясь вперед, он становится ключевым игроком в продвижении атрибутов «персонального помощника» наших устройств, о которых мы могли только мечтать в прошлом.

Читайте также: