iOS Point SDK  15.0.0
<BDPLocationDelegate > Protocol Reference

Defines the call-backs which Point SDK makes to inform the Application of location-related events. More...

#import <BDPLocationDelegate.h>

+ Inheritance diagram for <BDPLocationDelegate >:
+ Collaboration diagram for <BDPLocationDelegate >:

Instance Methods

(void) - didUpdateZoneInfo:
 
(void) - didCheckIntoFence:inZone:atLocation:willCheckOut:withCustomData:
 
(void) - didCheckIntoFence:inZone:atCoordinate:onDate:willCheckOut:withCustomData:
 
(void) - didCheckOutFromFence:inZone:onDate:withDuration:withCustomData:
 
(void) - didCheckIntoBeacon:inZone:atLocation:withProximity:willCheckOut:withCustomData:
 
(void) - didCheckIntoBeacon:inZone:withProximity:onDate:willCheckOut:withCustomData:
 
(void) - didCheckOutFromBeacon:inZone:withProximity:onDate:withDuration:withCustomData:
 
(void) - didStartRequiringUserInterventionForBluetooth
 
(void) - didStopRequiringUserInterventionForBluetooth
 
(void) - didStartRequiringUserInterventionForLocationServicesAuthorizationStatus:
 
(void) - didStopRequiringUserInterventionForLocationServicesAuthorizationStatus:
 
(void) - didStartRequiringUserInterventionForPowerMode
 
(void) - didStopRequiringUserInterventionForPowerMode
 

Detailed Description

Defines the call-backs which Point SDK makes to inform the Application of location-related events.

Assign your own implementation of this protocol to the locationDelegate property of the shared BDLocationManager instance, to handle location related callbacks.

Callbacks inform the application when:

  • ...new Zones have been received from Point Access
  • ...the user has triggered a Custom Notification action

Method Documentation

◆ didCheckIntoBeacon:inZone:atLocation:withProximity:willCheckOut:withCustomData:()

- (void BDPLocationDelegate) didCheckIntoBeacon: (BDBeaconInfo *)  beacon
inZone: (BDZoneInfo *)  zoneInfo
atLocation: (BDLocationInfo *)  locationInfo
withProximity: (CLProximity)  proximity
willCheckOut: (BOOL)  willCheckOut
withCustomData: (NSDictionary *)  customData 
optional

Implement this method to provide your own Custom Action when a Zone is triggered by entering the configured proximity of a Beacon.

This configuration can be made in the Management section of each Zone in the Point Access web-interface.

This method and didCheckIntoFence:inZone:atLocation:willCheckOut:withCustomData: are both optional.
Implement them according to whether you have Custom Actions in your geo-location scenario, and whether those actions may be triggered by entering Fences, Beacon proximities or both.

For clarity: When a user's device checks into a Zone, this method is called only if Custom Action is chosen as one of the Zone's Actions in the Point Access web-interface.

Parameters
beaconThe beacon that the user entered the required proximity of, in order to trigger this custom action.
zoneInfoThe zone containing the beacon in proximity.
locationInfoThe location of beacon when the custom action was triggered.
proximityThe proximity of the beacon when the custom action was triggered.
willCheckOutWhether a subsequent Check Out callback is expected when the device moves outside of the Beacon's range.
customDataThe custom fields setup from "Dashboard" in the Point Access web-interface.

◆ didCheckIntoBeacon:inZone:withProximity:onDate:willCheckOut:withCustomData:()

- (void BDPLocationDelegate) didCheckIntoBeacon: (BDBeaconInfo *)  beacon
inZone: (BDZoneInfo *)  zoneInfo
withProximity: (CLProximity)  proximity
onDate: (NSDate *)  date
willCheckOut: (BOOL)  willCheckOut
withCustomData: ((deprecated("Use method didCheckIntoBeacon:inZone:atLocation:withProximity:willCheckOut:withCustomData: instead")))  __attribute__ 
optional

This method has been deprecated as of version 1.9.4; it will be removed in a future version.

Deprecated:
Use didCheckIntoBeacon:inZone:atLocation:withProximity:willCheckOut:withCustomData:

◆ didCheckIntoFence:inZone:atCoordinate:onDate:willCheckOut:withCustomData:()

- (void BDPLocationDelegate) didCheckIntoFence: (BDFenceInfo *)  fence
inZone: (BDZoneInfo *)  zoneInfo
atCoordinate: (BDLocationCoordinate2D)  coordinate
onDate: (NSDate *)  date
willCheckOut: (BOOL)  willCheckOut
withCustomData: ((deprecated("Use method didCheckIntoFence:inZone:atLocation:willCheckOut:withCustomData: instead")))  __attribute__ 
optional

This method has been deprecated as of version 1.9.4; it will be removed in a future version.

Deprecated:
Use didCheckIntoFence:inZone:atLocation:willCheckOut:withCustomData:

◆ didCheckIntoFence:inZone:atLocation:willCheckOut:withCustomData:()

- (void BDPLocationDelegate) didCheckIntoFence: (BDFenceInfo *)  fence
inZone: (BDZoneInfo *)  zoneInfo
atLocation: (BDLocationInfo *)  location
willCheckOut: (BOOL)  willCheckOut
withCustomData: (NSDictionary *)  customData 
optional

Implement this method to provide your own Custom Action when a Zone is triggered by entering a Fence.

This method and didCheckIntoBeacon:inZone:atLocation:withProximity:willCheckOut:withCustomData: are both optional.
Implement them according to whether you have Custom Actions in your geo-location scenario, and whether those actions may be triggered by entering Fences, Beacon proximities, or both.

For clarity: When a user's device checks into a Zone, this method is called only if Custom Action is chosen as one of the Zone's Actions in the Point Access web-interface.

Parameters
fenceThe fence that the user entered in order to trigger this custom action.
zoneInfoThe zone containing the entered fence.
locationThe location relevant information of the device when the custom action was triggered.
willCheckOutWhether a subsequent Check Out callback is expected when the device moves a significant distance away from the Fence.
customDataThe custom fields setup from "Dashboard" in the Point Access web-interface.

◆ didCheckOutFromBeacon:inZone:withProximity:onDate:withDuration:withCustomData:()

- (void BDPLocationDelegate) didCheckOutFromBeacon: (BDBeaconInfo *)  beacon
inZone: (BDZoneInfo *)  zoneInfo
withProximity: (CLProximity)  proximity
onDate: (NSDate *)  date
withDuration: (NSUInteger)  checkedInDuration
withCustomData: (NSDictionary *)  customData 
optional

Implement this method to provide your own Custom Action when checking out of beacon.

This method and didCheckOutFromFence:inZone:onDate:withDuration:withCustomData: are both optional.
Implement them according to whether you have a beacon that has been configured with Check Out set.

Parameters
beaconThe beacon that the user checked out of in order to trigger this custom action.
zoneInfoThe zone containing the entered fence.
proximityThe proximity of the beacon when the check-in was triggered.
dateThe date and time when the custom action was triggered.
checkedInDurationThe dwell time minutes of the device within the range of a beacon.
customDataThe custom fields setup from "Dashboard" in the Point Access web-interface.

◆ didCheckOutFromFence:inZone:onDate:withDuration:withCustomData:()

- (void BDPLocationDelegate) didCheckOutFromFence: (BDFenceInfo *)  fence
inZone: (BDZoneInfo *)  zoneInfo
onDate: (NSDate *)  date
withDuration: (NSUInteger)  checkedInDuration
withCustomData: (NSDictionary *)  customData 
optional

Implement this method to provide your own Custom Action when checking out of fence.

This method and didCheckOutFromBeacon:inZone:withProximity:onDate:withDuration:withCustomData: are both optional.
Implement them according to whether you have a fence that has been configured with Check Out set.

Parameters
fenceThe fence that the user checked out of in order to trigger this custom action.
zoneInfoThe zone containing the entered fence.
dateThe date and time when the custom action was triggered.
checkedInDurationThe dwell time minutes of the device within a fence.
customDataThe custom fields setup from "Dashboard" in the Point Access web-interface.

◆ didStartRequiringUserInterventionForBluetooth()

- (void BDPLocationDelegate) didStartRequiringUserInterventionForBluetooth
optional

These methods can be implemented to monitor whether the Bluetooth capabilities of the device are in a valid state when utilising the SDK's beacon functionality.

If the configured location of a beacon is near the device, then didStartRequiringUserInterventionForBluetooth will be called.

From the version 15.0.0 the SDK does not maintain Bluetooth enablement state. The boolean isBluetoothEnabled is removed from the SDK.

Since then, it is an app responsibility to check the Bluetooth state and require user interraction in the most appropriate way.

Thereafter, if the device leaves proximity of the beacon, then didStopRequiringUserInterventionForBluetooth is called.

◆ didStartRequiringUserInterventionForLocationServicesAuthorizationStatus:()

- (void BDPLocationDelegate) didStartRequiringUserInterventionForLocationServicesAuthorizationStatus: (CLAuthorizationStatus)  authorizationStatus
optional

These methods can be implemented to monitor whether iOS Location Services are in a valid state while the SDK is authenticated with Point Access.

If Point SDK is authenticated with Point Access and Location Services have not been enabled or set to "Never" or "While Using" then didStartRequiringUserInterventionForLocationServicesAuthorizationStatus will be called.

Thereafter, if Location Services have been set to "Always Allow", or if Point SDK logs out from the authenticated state, then didStopRequiringUserInterventionForLocationServicesAuthorizationStatus: is called.

If Location Services are both required and enabled, then these callbacks will not be invoked.

Parameters
authorizationStatusThe current authorization status of the calling application.

◆ didStartRequiringUserInterventionForPowerMode()

- (void BDPLocationDelegate) didStartRequiringUserInterventionForPowerMode
optional

These methods can be implemented to monitor whether the iOS 'Low Power Mode' has been enabled while the SDK is authenticated with Point Access.

The callback is required because Low Power mode negatively impacts the timeliness and precision of Point SDK, which your Application may need to communicate to the user.

If Point SDK is authenticated with Point Access and iOS has been switched to 'Low Power mode', then didStartRequiringUserInterventionForPowerMode will be called.

Thereafter, if the user switches off 'Low Power mode', then didStopRequiringUserInterventionForPowerMode is called.

◆ didStopRequiringUserInterventionForBluetooth()

- (void BDPLocationDelegate) didStopRequiringUserInterventionForBluetooth
optional

To preserve the energy and minimise the battery impact, it is recommended to turn off Bluetooth if the application is not using it.

However, there might be other apps or peripheral using the Bluetooth. Thus the user decides whenever to keep it enabled or disabled.

Please refer to didStartRequiringUserInterventionForBluetooth.

◆ didStopRequiringUserInterventionForLocationServicesAuthorizationStatus:()

- (void BDPLocationDelegate) didStopRequiringUserInterventionForLocationServicesAuthorizationStatus: (CLAuthorizationStatus)  authorizationStatus
optional

Please refer to didStartRequiringUserInterventionForLocationServices.

◆ didStopRequiringUserInterventionForPowerMode()

- (void BDPLocationDelegate) didStopRequiringUserInterventionForPowerMode
optional

◆ didUpdateZoneInfo:()

- (void BDPLocationDelegate) didUpdateZoneInfo: (NSSet *)  zoneInfos
optional

Called whenever new zone info is received from Point Access.

This occurs immediately after the Point SDK successfully authenticates, and repeats when the rule download time interval is reached or significant distance has been travelled.

This is a value that you set when creating the Application in the Point Access web-interface, and determines how often the Zone data will be refreshed on the device.

Parameters
zoneInfosA collection of BDZoneInfo objects, corresponding to the Zones you created for this application, in the Point Access web-interface.