iOS Point SDK  1.13.1
BDLocationManager(BDPointSDK) Category Reference

Provides Point SDK specific authentication methods and delegate properties to BDLocationManager. More...

#import <BDLocationManager+BDPointSDK.h>

+ Inheritance diagram for BDLocationManager(BDPointSDK):
+ Collaboration diagram for BDLocationManager(BDPointSDK):

Instance Methods

(void) - authenticateWithApiKey:
 
(void) - logOut
 
(void) - setPointDelegate:
 
(id< BDPAuthenticationDelegate > authenticationDelegate) - DEPRECATED_MSG_ATTRIBUTE
 
(void) - setZone:disableByApplication:
 
(BOOL) - isZoneDisabledByApplication:
 
(void) - applicationContainsDisabledZone:completion:
 
(NSString *) - installRef
 
(void) - notifyPushUpdateWithData:
 
(NSString *) - sdkVersion
 
(void) - setCustomEventMetaData:
 
(NSDictionary *) - customEventMetaData
 

Properties

id< BDPLocationDelegate > locationDelegate
 
id< BDPSessionDelegate > sessionDelegate
 
BDAuthenticationState authenticationState
 
NSSet * zoneInfos
 

Detailed Description

Provides Point SDK specific authentication methods and delegate properties to BDLocationManager.

See also
details in BDLocationManager for unified documentation of the class, including this Category.

Method Documentation

◆ applicationContainsDisabledZone:completion:()

- (void) applicationContainsDisabledZone: (NSString *)  zoneId
completion: (void(^)(BOOL))  completion 

◆ authenticateWithApiKey:()

- (void) authenticateWithApiKey: (NSString *)  apiKey

Authenticate, and start a session with Point Access. This behaviour is asynchronous and this method will return immediately. Progress of the authentication process can be monitored by callbacks provided via the sessionDelegate property, or the KVO-enabled authenticationState property.

Location Services are required immediately after a successful authentication. If your App has not already called [CLLocationManager auth]

It is the responsibility of the Application to respect the authentication life-cycle and ensure that BDLocationManager is not already Authenticated, or in the process of Authenticating, while calling this method.

Exceptions
BDPointSessionExceptionCalling this method while in an invalid state will result in a BDPointSessionException being thrown.

◆ customEventMetaData()

- (NSDictionary *) customEventMetaData

Returns the custom metadata set by calling setCustomEventMetaData.

◆ DEPRECATED_MSG_ATTRIBUTE()

- (id<BDPAuthenticationDelegate> authenticationDelegate) DEPRECATED_MSG_ATTRIBUTE ("This has been superceded by BDPSessionDelegate and will be removed in a future release.") 

◆ installRef()

- (NSString *) installRef

Returns the installation reference of this Point SDK enabled App. This is the same as the Install Ref that appears in a Zone's Activity Log in Point Access, or queried via Open API. This reference is randomly generated at the first run-time of the App and remains fixed for the duration of the App installation.

◆ isZoneDisabledByApplication:()

- (BOOL) isZoneDisabledByApplication: ((deprecated("First deprecated in 1.13 - use method applicationContainsDisabledZone:completion: instead")))  __attribute__

◆ logOut()

- (void) logOut

Immediately ends a currently active session with Point Access. According to the authentication lifecycle, this method should only be called when authenticationState is BDAuthenticationStateAuthenticated. Otherwise, a BDPointSessionException will be thrown.

Exceptions
BDPointSessionExceptionThrown if BDLocationManager is already logged out.

◆ notifyPushUpdateWithData:()

- (void) notifyPushUpdateWithData: (NSDictionary *)  data

Notifies Point SDK that the push notification has been received with given data.

Parameters
dataPush data passed through AppDelegate callback methods.

◆ sdkVersion()

- (NSString *) sdkVersion

Returns the version of the Point SDK as a NSString.

◆ setCustomEventMetaData:()

- (void) setCustomEventMetaData: (NSDictionary *)  data

Sets custom metadata for Notification events. The custom metadata set through this API will be available on the backend in checkin activity log and via webhooks. Only up to 5 custom meta data fields are allowed. Throws BDCustomEventMetadataCountException exception if the number of custom fields exceeded. Only String Type is allowed. Throws BDCustomEventMetadataDataFormatException exception if data contains non-String type.

◆ setPointDelegate:()

- (void) setPointDelegate: (id< BDPointDelegate >)  pointDelegate

Equivalent to setting locationDelegate and sessionDelegate

.

Parameters
pointDelegateObject implementing BDPointDelegate, equivalent to both BDPSessionDelegate and BDPLocationDelegate

◆ setZone:disableByApplication:()

- (void) setZone: (NSString *)  zoneId
disableByApplication: (BOOL)  disable 

Disabled or re-enable a specific zone. Information about valid zones, including their respective zoneId's for use in this method, is delivered to BDPLocationDelegate::didUpdateZoneInfo:.

Property Documentation

◆ authenticationState

- (BDAuthenticationState) authenticationState
readatomicassign

Read-only property, providing the current authentication authenticationState. This property is KVO compliant, meaning that it can be observed for changes with Key-Value Observing.

◆ locationDelegate

- (id<BDPLocationDelegate>) locationDelegate
readwriteatomic

◆ sessionDelegate

- (id<BDPSessionDelegate>) sessionDelegate
readwriteatomic

Applications using Point SDK must authenticate before using its features.

Which classes and methods require authentication is set out clearly in the API documentation. Authentication is performed simply by calling BDLocationManager::authenticateWithApiKey: with the API credentials provided in your Point Access management portal.

Implement the callbacks in your own implementation of BDPSessionDelegate, and assign it to this property to receive feedback on the outcome of authentication, and to tell your application when it can start fully using Point SDK. Attempting to call protected features when not authenticated will case a BDPointSessionException to be thrown.

◆ zoneInfos

- (NSSet*) zoneInfos
readnonatomicassign

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