BDPLocationDelegate

@protocol BDPLocationDelegate <NSObject>

@brief 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 @ref BDLocationManager#locationDelegate “locationDelegate” property of the shared @ref 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

  • Called whenever new @ref BDZoneInfo “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.

    Declaration

    Objective-C

    - (void)didUpdateZoneInfo:(NSSet *)zoneInfos;

    Parameters

    zoneInfos

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

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

    This method and @ref 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 @ref BDZoneInfo “Zone”, this method is called only if Custom Action is chosen as one of the @ref BDZoneInfo “Zone”‘s Actions in the Point Access web-interface.

    Declaration

    Objective-C

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

    Parameters

    fence

    The fence that the user entered in order to trigger this custom action.

    zoneInfo

    The zone containing the entered fence.

    location

    The location relevant information of the device when the custom action was triggered.

    willCheckOut

    Whether a subsequent Check Out callback is expected when the device moves a significant distance away from the Fence.

    customData

    The custom fields setup from “Dashboard” in the Point Access web-interface.

  • Deprecated

    Use method didCheckIntoFence:inZone:atLocation:willCheckOut:withCustomData: instead

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

    @deprecated Use @ref didCheckIntoFence:inZone:atLocation:willCheckOut:withCustomData:

    Declaration

    Objective-C

    - (void)didCheckIntoFence:(BDFenceInfo *)fence
                       inZone:(BDZoneInfo *)zoneInfo
                 atCoordinate:(BDLocationCoordinate2D)coordinate
                       onDate:(NSDate *)date
                 willCheckOut:(BOOL)willCheckOut
               withCustomData:(NSDictionary *)customData;
  • Implement this method to provide your own Custom Action when checking out of fence.

    This method and @ref 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.

    Declaration

    Objective-C

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

    Parameters

    fence

    The fence that the user checked out of in order to trigger this custom action.

    zoneInfo

    The zone containing the entered fence.

    date

    The date and time when the custom action was triggered.

    checkedInDuration

    The dwell time minutes of the device within a fence.

    customData

    The custom fields setup from “Dashboard” in the Point Access web-interface.

  • 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 @ref 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 @ref BDZoneInfo “Zone”, this method is called only if Custom Action is chosen as one of the @ref BDZoneInfo “Zone”‘s Actions in the Point Access web-interface.

    Declaration

    Objective-C

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

    Parameters

    beacon

    The beacon that the user entered the required proximity of, in order to trigger this custom action.

    zoneInfo

    The zone containing the beacon in proximity.

    locationInfo

    The location of beacon when the custom action was triggered.

    proximity

    The proximity of the beacon when the custom action was triggered.

    willCheckOut

    Whether a subsequent Check Out callback is expected when the device moves outside of the Beacon’s range.

    customData

    The custom fields setup from “Dashboard” in the Point Access web-interface.

  • Deprecated

    Use method didCheckIntoBeacon:inZone:atLocation:withProximity:willCheckOut:withCustomData: instead

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

    @deprecated Use @ref didCheckIntoBeacon:inZone:atLocation:withProximity:willCheckOut:withCustomData:

    Declaration

    Objective-C

    - (void)didCheckIntoBeacon:(BDBeaconInfo *)beacon
                        inZone:(BDZoneInfo *)zoneInfo
                 withProximity:(CLProximity)proximity
                        onDate:(NSDate *)date
                  willCheckOut:(BOOL)willCheckOut
                withCustomData:(NSDictionary *)customData;
  • Implement this method to provide your own Custom Action when checking out of beacon.

    This method and @ref 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.

    Declaration

    Objective-C

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

    Parameters

    beacon

    The beacon that the user checked out of in order to trigger this custom action.

    zoneInfo

    The zone containing the entered fence.

    proximity

    The proximity of the beacon when the check-in was triggered.

    date

    The date and time when the custom action was triggered.

    checkedInDuration

    The dwell time minutes of the device within the range of a beacon.

    customData

    The custom fields setup from “Dashboard” in the Point Access web-interface.

  • 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 @ref didStopRequiringUserInterventionForBluetooth is called.

    Declaration

    Objective-C

    - (void)didStartRequiringUserInterventionForBluetooth;
  • 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 @ref didStartRequiringUserInterventionForBluetooth.

    Declaration

    Objective-C

    - (void)didStopRequiringUserInterventionForBluetooth;
  • 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.

    Declaration

    Objective-C

    - (void)didStartRequiringUserInterventionForLocationServicesAuthorizationStatus:
        (CLAuthorizationStatus)authorizationStatus;

    Parameters

    authorizationStatus

    The current authorization status of the calling application.

  • Please refer to @ref didStartRequiringUserInterventionForLocationServicesAuthorizationStatus:.

    Declaration

    Objective-C

    - (void)didStopRequiringUserInterventionForLocationServicesAuthorizationStatus:
        (CLAuthorizationStatus)authorizationStatus;
  • 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.

    Declaration

    Objective-C

    - (void)didStartRequiringUserInterventionForPowerMode;
  • Please refer to @ref didStartRequiringUserInterventionForPowerMode.

    Declaration

    Objective-C

    - (void)didStopRequiringUserInterventionForPowerMode;