Setup Whatfix Mobile Callbacks

Prev Next

Whenever an end user interacts with Walkthroughs or other Whatfix Mobile elements, events are generated to track the Insights enabling you to analyze and refine your app experience based on real time data. For more information on Insights, see Insights Overview.

Info:

Listen to all events in your Application(Android) / AppDelegate(iOS) class.

Use the following code snippets to listen to the Whatfix Mobile callbacks:  

Note:

Whatfix Mobile supports only versions greater than or equal to and above the following versions:

  • Android: 2.0.16

  • iOS: 2.0.16

  • React Native: 2.0.19

  • Cordova (Android): 2.0.10

  • Cordova (iOS): 2.0.13

  • Xamarin (Android): 2.0.9

  • Xamarin (iOS): 2.0.17

  • Ionic: 2.0.17

  • Jetpack Compose: 2.0.8

  • MAUI (Android): 2.0.9

Swift

Leap.shared.callback = self


extension AppDelegate:LeapCallback {
    func eventNotification(eventInfo: Dictionary<String, Any>) {
        
    }
}

Android

import is.leap.android.LeapEventListener;

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        LeapEventCallbacks eventListener = new LeapEventCallbacks() {
            @Override
            public void onEvent(Map<String, String> eventData) {
                
            }
        };
      Leap.setLeapEventCallbacks(eventListener);
    }
 }

MAUI

LeapPlugin.start({apiKey:"<YOUR_API_KEY>"});
LeapPlugin.addListener("leapCallbacks", (event: LeapCallbacks) => {
    console.log("Leap Events: ", event);
})

Jetpack

LeapPlugin.start({apiKey:"<YOUR_API_KEY>"});
LeapPlugin.addListener("leapCallbacks", (event: LeapCallbacks) => {
    console.log("Leap Events: ", event);
})

Ionic

The following code snippet has to be added where the app component is rendered.

LeapPlugin.start({apiKey:"<YOUR_API_KEY>"});
LeapPlugin.addListener("leapCallbacks", (event: LeapCallbacks) => {
    console.log("Leap Events: ", event);
})

React Native

import {  NativeEventEmitter } from 'react-native';
export class App extends React.Component {

  componentDidMount() {
    // Register for callbacks
    const eventEmitter = new NativeEventEmitter(LeapReactNative);
    const onSessionConnect = (event) => {
      console.log(event);
    }
    eventEmitter.addListener('LeapCallbacks', onSessionConnect);
  }
}

Objective-C

@interface AppDelegate () <LeapCallback>

Leap.shared.callback = self;

- (void)eventNotificationWithEventInfo:(NSDictionary<NSString *,id> *)eventInfo {
    
}

Xamarin (Android)

using static IS.Leap.Android.ILeapEventCallbacks
using IS.Leap.Android;

public class MainActivity : AppCompatActivity, ILeapEventCallbacks 
{
    protected override void OnCreate(Bundle savedInstanceState){
        Leap.SetLeapEventCallbacks(eventCallbacks: this);
    }
    
    public void OnEvent(IDictionary<string, string> keyValues)
    {
            
    }
}

Xamarin (iOS)

public class AppDelegate : UIResponder, IUIApplicationDelegate
{
    private LeapEventsCallback callback = null;
    public bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
    {
        Leap.Shared.Start("f4f460a6-9e04-4114-9da4-410659427c6a");
        callback = new LeapEventsCallback();
        Leap.Shared.SetCallback(callback);
        return true;
    }
}

public class LeapEventsCallback : LeapCallback
{
    public override void EventNotificationWithEventInfo(NSDictionary<NSString, NSObject> eventInfo)
    {
        System.Diagnostics.Debug.WriteLine(eventInfo);
    }
}

Cordova (Android)

cordova.plugins.LeapAndroid.setLeapEventCallback((leapEvent)=> {
    console.log(JSON.stringify(leapEvent, null, 2))
})

Cordova (iOS)

cordova.plugins.LeapiOS.setLeapEventCallback((leapEvent) =>{
    console.log(JSON.stringify(leapEvent, null, 2));
})