Completing the Integration

Callbacks offered by the SDK

Our SDK offers various callbacks that help you have greater control of the execution flow and implement custom behaviors.

To subscribe to these callbacks you have to:

  • Pass the functions as parameters on initialization.
Indigitall.initialize(withAppKey: "<YOUR_APP_KEY>", onIndigitallInitialized: { (permissions, device) in
        //DO SOMETHING
    }) { (error) in
        //LOG ERROR
    }
[Indigitall initializeWithAppKey:@"<YOUR_APP_KEY>" onIndigitallInitialized:^(NSArray<INPermissions *> * _Nonnull permissions, INDevice * _Nonnull device) {
         //DO SOMETHING
    } onErrorInitialized:^(INError * _Nonnull onError) {
        //LOG ERROR
    }];

Initialized SDK

The onIndigitallInitialized method will run when the SDK finishes initializing and the device is ready to receive notifications from indigitall.

Receive as parameter:

  • An array of String. The first item is the status of the claims permission. The second item is the status of the locate permission.
  • A device object with the information associated with the device.

Here we show you an element that prints logs about the status of permissions and device information.

Indigitall.initialize(appKey: "<YOUR_APP_KEY>", 
    onIndigitallInitialized: { (permission, device) in
        print("onIndigitallInitialized Push \(permissions[0].permissionType) permission: \(permissions[0].permissionStatus)")
        print("onIndigitallInitialized Location \(permissions[0].permissionType) permission: \(permissions[1].permissionStatus)")
        print("onIndigitallInitialized DEVICE: \(device.deviceID )")
    }, onErrorInitialized: { (error) in
        //LOG ERROR
    }
[Indigitall initializeWithAppKey:@"<YOUR_APP_KEY>" onIndigitallInitialized:^(NSArray<INPermissions *> * _Nonnull permissions, INDevice * _Nonnull device) {
        NSLog(@"onIndigitallInitialized Device: %@",device.deviceID);
        NSLog(@"onIndigitallInitialized Permission push: %u : %u", permissions[0].permissionType, permissions[0].permissionStatus );
        NSLog(@"onIndigitallInitialized Permission location: %u: %u",permissions[1].permissionType, permissions[1].permissionType)
    } onErrorInitialized:^(INError * _Nonnull onError) {
        //LOG ERROR
    }];

New registered device

The onNewUserRegistered method will be executed when the device has been assigned the push token to receive notifications, that is, in the first execution of the app after being installed and after having accepted permissions. This is defined in the AppDelegate as callback of the call to the setDeviceToken described above.

It receives as a parameter the Device object with the information associated with the device.

Indigitall.setDeviceToken(deviceToken) { (token) in
    print("NewUserRegistered: \(token)")
}
[Indigitall setDeviceToken:deviceToken onNewUserRegistered:^(INDevice * _Nonnull device) {
        NSLog(@"Device: %@",device);
    }];

An error has occurred

The onErrorInitialized method will be executed only if an error occurs during the initialization of the SDK.

It receives the error description as a parameter.

Indigitall.initialize(appKey: "<YOUR_APP_KEY>", 
    onIndigitallInitialized: { (permission, device) in
        //DO SOMETHING
    }, onErrorInitialized: { (error) in
        print("ERROR: \(error.message)")
    }
[Indigitall initializeWithAppKey:@"<YOUR_APP_KEY>" onIndigitallInitialized:^(NSArray<INPermissions *> * _Nonnull permissions, INDevice * _Nonnull device) {
        //DO SOMETHING    
     } onErrorInitialized:^(INError * _Nonnull onError) {
        NSLog(@"Error Initialized: %@",onError);
    }];