iOS библиотека определения координат местоположения.
Подключение библиотеки осуществляется через Swift Package Manager
. В Xcode выберите в меню File -> Swift Packages -> Add Package Dependency
и введите в поле адреса репозитория https://github.com/maps-mailru/tracking-sdk-ios
.
Выберите TrackingKit
и добавьте его к цели вашего приложения.
Добавьте в ваше приложение следующиее Capabilities:
Добавьте в Info.plist
следующие ключи (обязательно):
Импортируйте TrackingKit
в файл, где вы будете использовать трекер. Создайте свойство типа Tracker
и держите сильную ссылку на него весь цикл работы приложения.
import TrackingKit
...
let tracker: Tracker
Инициализируйте трекер с уникальным appKey вашего приложения и запустите определение координат.
tracker = Tracker(appKey: "Your app key")
tracker.startTracking()
Вы можете запустить определение координат сразу, передав при инициализации флаг startTrackingImmediately
:
tracker = Tracker(appKey: "Your app key", startTrackingImmediately: true)
Если ваше приложение уже имеет разрешение на доступ к локации, определение координат начнется сразу. Иначе система запросит такое разрешение у пользователя. Запрашиваемый уровень доступа к локации - "Всегда".
Вы можете предотвратить явный запрос разрешения, указав параметр requestPermission: false
:
tracker = Tracker(appKey: "Your app key", startTrackingImmediately: true, requestPermission: false)
Для приостановки отслеживания вызовите метод stopTracking()
:
tracker.stopTracking()
Для возобновления отслеживания повторно вызовите startTracking()
.
Вы можете получать сообщения о работе трекера в консоли, включив подробное логирование в свойстве класса:
Tracker.isDebugLoggingEnabled = true
Вы также можете включить запись логов в текстовые файлы:
Tracker.writeLogsToFiles = true
Zip-архив с файлами логов можно получить по URL tracker.logs
.
Для отслеживания всех основных этапов работы трекера реализуйте протокол TrackerDelegate
и назначьте соответствующее свойство трекеру:
tracker.delegate = self
Методы делегата вызываются на главной очереди.
С некоторой периодичностью, данные о перемещениях пользователя будут отправляться на сервер.
После отправки сообщения, будет вызван соответствующий метод делегата:
func tracker(_ tracker: Tracker, didReport report: Report, storedLocations: [Location])
или, в случае ошибки:
func tracker(_ tracker: Tracker, didFailReport report: Report, withError error: Error)
Если вашему приложению необходимо передать дополнительные данные в сообщении серверу, вы можете вызвать один из следующих методов:
tracker.setAppInfo(key:value:)
tracker.setDeviceInfo(key:value:)
tracker.setUserInfo(key:value:)
Например:
tracker.setAppInfo(key: .custom("colorTheme"), value: ["dark"])
или
tracker.setUserInfo(key: .custom("age"), value: ["33"])
Если вы знаете идентификатор пользователя Mail.ru или в соц. сетях ВК/ОК, то необходимо использовать предопределённые значения ключей:
public enum ReportUserInfoKey {
case mrgsIDs
case vkIDs
case okIDs
...
}
link |
Stars: 0 |
Last commit: 45 weeks ago |
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics