-
Notifications
You must be signed in to change notification settings - Fork 2
Help
Установить библиотеку можно при помощи CocoaPads. В Podfile добавьте:
pod 'EmpatikaBeacons'
Так же библиотеку можно установить вручную: 1. Добавить библиотеку sdk в проект. 2. Добавить в проекте линк на CoreLocation.framework, CoreBluetooth.framework.
На данный момент appID может являться произвольным значением, лишь бы не пустым. Об изменениях в логике будет сказано заранее.
Объект класса RBDirectionTracker нужно запрашивать только через статический метод sharedInstance. В AppDelegate своего приложения добавьте ваш appID.
[[RBDirectionTracker sharedInstance] setAppID:@"UniqueAppID"];
Класс, в котором вы хотите подписаться на события, нужно реализовать делегат RBDirectionTrackerDelegate. Данный класс необходимо добавить в список делегатов класса RBDirectionTracker.
[[RBDirectionTracker sharedInstance] addDelegate:self];
В случае, если класс необходио убрать из списка, то можно воспользоваться другим методом.
[[RBDirectionTracker sharedInstance] removeDelegate:self];
Для запуска мониторинга (можно поместить во viewDidLoad основного viewController'a), нужно вызвать метод,
[[RBDirectionTracker sharedInstance] startMonitoring];
Если на момент запуска appID не указан, то будет брошено исключение @"IllegalAppID". Для остановки мониторинга нужно вызвать метод.
[[RBDirectionTracker sharedInstance] stopMonitoring];
Все методы данного делегата являются опциональными.
- (void)determineState:(EBRegionState *)state forRegion:(RBRegion *)region;
Вызывается в случае, когда пользователь входит или покидает заданный регион. Рекомендуется его использовать для мотивация пользователя открыть приложение или просто нотификации.
Пример: когда пользователь запускает приложение и не находится в зоне действия бикона, то данный метод будет вызван с state == EBRegionStateOutside, в ином случае EBRegionStateInside.
- (void)enterRegion:(RBRegion *)region;
Вызывается, когда пользователь заходит в регион. Отличие от предыдущего метода в следующем: если пользователь запустил приложение в зоне видимости бикона, то данный метод вызван не будет. Не работает в бекграунде.
- (void)exitRegion:(RBRegion *)region;
Вызывается, когда пользователь покидает регион. Отличие от первого метода аналогично предыдущему.
- (void)rangeBeacon:(RBBeacon *)beacon forRegion:(RBRegion *)region;
Вызывается, когда меняется состояние бикона, в зоне видимости которого находится пользователь в заданном регионе. Метод странно ведёт себя в бекграунде, а именно: вызывается, когда пользователь находится на локскрине. Возможно использование для пушей и других действий, но не рекомендуется.
- (void)bluetoothDidUpdateState:(CBCentralManagerState)state;
Вызывается тогда, когда bluetooth меняет своё состояние.
Представляет собой сущность бикона.
@property NSNumber *major; Мажорная версия бикона.
@property NSNumber *minor; Минорная версия бикона.
@property CLProximity proximity; Расстояние между биконом и девайсом (4 состояния)
@property double accuracy; Примерное расстояние в метрах между биконом и девайсом
Представляет собой сущность региона
@property NSNumber *major; Мажорная версия региона
@property NSNumber *minor; Минорная версия региона
@property NSString *identifier; Идентификатор региона
typedef NS_ENUM(NSInteger, EBRegionState) {
EBRegionStateInside,
EBRegionStateOutside,
EBRegionStateUnknown
};