iOS SDK 15.6.7,
Android SDK 15.5.3,
Hello Screen Dynamic States,
Bluedot Cordova plugin 4.0.1,
Bluedot Xamarin Android wrapper 15.5.2,
Bluedot Xamarin iOS wrapper 15.6.6,
Bluedot React Native wrapper 2.3.0,
Tempo allows active tracking of a user’s location, as well as live ETA estimation.
For this capability, the SDK needs to be initialized and the app must have location permission. You also need Tempo to be enabled for your Bluedot Account and can see the Tempo section in the Projects List page of your Canvas account. If that is not visible and you want to use this capability, please contact your Bluedot CX representative.
Tempo also requires Destination IDs to be defined, which you can learn about here.
To start Tempo, you should
BDLocationManager.instance()?.startTempoTracking(withDestinationId: "MyDestinationId"){ error in guard error == nil else { print("There was an error starting Tempo with the Bluedot SDK: \(error.localizedDescription)") return } }
The startTempoTracking
method should be called when the app is in the foreground. Tempo tracking can only be active for one destination at a time.
The Tempo service does not issue events under normal operation. Instead, it only issues events if there is an issue with the operation. Tracking events are instead delivered via webhook, as configured in the Canvas UI.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { BDLocationManager.instance()?.tempoTrackingDelegate = self BDLocationManager.instance()?.initialize( withProjectId: "MyProjectId"){ error in guard error == nil else { print("Initialisation with Bluedot SDK failed \(error.localizedDescription)") return } } return true }
extension AppDelegate: BDPTempoTrackingDelegate { func didStopTrackingWithError(_ error: Error!) { print("There was an error continuing to track with the Bluedot SDK: \(error.localizedDescription)") } }
If you only need tempo for a limited period, once that period is over, you can stop the tempo service.
BDLocationManager.instance()?.stopTempoTracking(){ error in guard error == nil else { print("Stop Tempo failed \(error.localizedDescription)") return } }