BDPLocationDelegate

Deprecated

First deprecated in 15.4.0. Please refer to each deprecated methods for more information

@protocol BDPLocationDelegate <NSObject>

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 BDLocationManager instance, to handle location related callbacks.

Callbacks inform the application when:

  • …new Zones have been received from Canvas
  • …the user has triggered a Custom Notification action
  • Deprecated

    First deprecated in 15.4.0 - Features migrated to -[BDPGeoTriggeringEventDelegate onZoneInfoUpdate:] method

    Called whenever new BDZoneInfo “zone info” is received from Canvas.

    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 Canvas 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 BDZoneInfo objects, corresponding to the Zones you created for this application, in the Canvas web-interface.

  • Deprecated

    First deprecated in 15.4.0 - Feature migrated to -[BDPGeoTriggeringEventDelegate didEnterZone:]

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

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

  • Deprecated

    First deprecated in 1.9.4 - Feature migrated to -[BDPGeoTriggeringEventDelegate didEnterZone:]

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

    Declaration

    Objective-C

    - (void)didCheckIntoFence:(BDFenceInfo *)fence
                       inZone:(BDZoneInfo *)zoneInfo
                 atCoordinate:(BDLocationCoordinate2D)coordinate
                       onDate:(NSDate *)date
                 willCheckOut:(BOOL)willCheckOut
               withCustomData:(NSDictionary *)customData;
  • Deprecated

    First deprecated in 15.4.0 - Feature migrated to -[BDPGeoTriggeringEventDelegate didExitZone:]

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

    This method and -[BDPLocationDelegate 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 Canvas web-interface.

  • Deprecated

    First deprecated in 15.4.0 - It will be removed in a future version

    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 Canvas web-interface.

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

  • Deprecated

    First deprecated in 1.9.4 - It will be removed in a future version

    Undocumented

    Declaration

    Objective-C

    - (void)didCheckIntoBeacon: (BDBeaconInfo *)beacon
                        inZone: (BDZoneInfo *)zoneInfo
                 withProximity: (CLProximity)proximity
                        onDate: (NSDate *)date
                  willCheckOut: (BOOL)willCheckOut
                withCustomData: (NSDictionary *)customData
    __attribute__((deprecated("First deprecated in 1.9.4 - It will be removed in a future version")));
  • Deprecated

    First deprecated in 15.4.0 - It will be removed in a future version

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

    This method and -[BDPLocationDelegate 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 Canvas web-interface.

  • Deprecated

    First deprecated in 15.4.0 - It will be removed in a future version

    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 -[BDPLocationDelegate 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 `-[BDPLocationDelegate didStopRequiringUserInterventionForBluetooth is called.

    Declaration

    Objective-C

    - (void)didStartRequiringUserInterventionForBluetooth;
  • Deprecated

    First deprecated in 15.4.0 - It will be removed in a future version

    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 -[BDPLocationDelegate didStartRequiringUserInterventionForBluetooth].

    Declaration

    Objective-C

    - (void)didStopRequiringUserInterventionForBluetooth;
  • Deprecated

    First deprecated in 15.4.0 - Feature replaced by -[BDPBluedotServiceDelegate locationAuthorizationDidChangeFromPreviousStatus:toNewStatus:]

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

    If Point SDK is authenticated with Canvas 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 -[BDPLocationDelegate 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.

  • Deprecated

    First deprecated in 15.4.0 - Feature replaced by -[BDPBluedotServiceDelegate locationAuthorizationDidChangeFromPreviousStatus:toNewStatus:]

    Declaration

    Objective-C

    - (void)didStopRequiringUserInterventionForLocationServicesAuthorizationStatus:
        (CLAuthorizationStatus)authorizationStatus;
  • Deprecated

    First deprecated in 15.4.0 - Feature replaced by -[BDPBluedotServiceDelegate lowPowerModeDidChange:]

    These methods can be implemented to monitor whether the iOS ‘Low Power Mode’ has been enabled while the SDK is authenticated with Canvas.

    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 Canvas and iOS has been switched to ‘Low Power mode’, then didStartRequiringUserInterventionForPowerMode will be called.

    Thereafter, if the user switches off ‘Low Power mode’, then -[BDPLocationDelegate didStopRequiringUserInterventionForPowerMode] is called.

    Declaration

    Objective-C

    - (void)didStartRequiringUserInterventionForPowerMode;
  • Deprecated

    First deprecated in 15.4.0 - Feature replaced by -[BDPBluedotServiceDelegate lowPowerModeDidChange:]

    Declaration

    Objective-C

    - (void)didStopRequiringUserInterventionForPowerMode;