Get Real-Time Location Tracking for your apps with MapmyIndia InTouch SDK. Track a user's live location with our simplified InTouch React native SDK integration, highly customizable to your specific needs.
The InTouch SDK comes with a variety of events that enable better control and power over your tracking needs. Also get location benefits built for various applications including logistics, delivery tracking, employee tracking, and live location sharing.
To get started, explore the InTouch Demo App.
Already have an application which is build on React Native? Give it a boost with the powerful features of InTouch. Learn how to Integrate the InTouch SDK
- Setup: Please contact apisupport@mapmyindia.com to get the Intouch SDK authorization for your Client ID and Client Secret.
- Quick Start: Start with a ready-to-go app
- Integrate the SDK: Integrate the SDK into your app
- Dashboard: See all your devices' locations on MapmyIndia InTouch Dashboard
We use your Client ID to identify your account details and assign all your user's devices under a single account.
To get your Outh2 Rest API Client ID and Client Secret please login to MapmyIndia API Dashboard
Please contact apisupport@mapmyindia.com to get InTouch SDK access to your Client ID
After getting the access, you can start with the InTouchDemo app, or Integrate the InTouch SDK in your app.
This guide allows you to add live location tracking to your react native app. Visual Studio is the recommended development environment for building an app with the MapmyIndia InTouch React native SDK or you can use any other IDE.
Click here to download the InTouchDemo App Project. Open this project in Visual Studio
-
Add the Client Id and Client Secret to InputScreen.js file.
-
Run npm install
-
Run project on your device using simulator instance using below mentioned command line.
npx react-native run-android
Step 3. Check your location on the InTouch dashboard
Install the below mentioned library in your project.
npm install mapmyindia-intouch-react-native-sdk --save
- If using React-native<0.60
react-native link mapmyindia-intouch-react-native-sdk
For Android and Ios add the below mentioned lines
- Add following line in
android/build.gradle
file:-
allprojects {
repositories {
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
+ maven { url 'https://maven.mapmyindia.com/repository/mapmyindia/'}
google()
jcenter()
maven { url 'https://www.jitpack.io' }
}
}
- Add following line in
android/app/build.gradle
file:-
defaultConfig {
applicationId "com.intouch_react_native_sample"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
+ multiDexEnabled true
}
- Java Version 11 Required
- minimum compileSdkVersion 31 required
- Add follwoing permissions in your project's plist.info
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Your location is used to personalize content.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Your location is used to personalize content.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Your location is used to personalize content.</string>
<key>NSMotionUsageDescription</key>
<string>In order to count steps I need an access to your pedometer</string>
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>location</string>
</array>
- Add following function in your project's AppDelegate.h
#import <MapmyIndiaIntouchCore/MapmyIndiaIntouchCore.h>
- Add following function in your project's AppDelegate.m
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler
{
[Intouch.shared backgroundfetchWithCompletionHandler:completionHandler];
}
-
Enable background fetch and location updates from Signing and Capabilities
-
run pod install from ios folder
import MapmyIndiaIntouch from 'mapmyindia-intouch-react-native-sdk';
const status = await MapmyIndiaIntouch.isInitialized();
Initialize the SDK with your Client ID and Client Secret and device name.Device name helps to identify the user on Portal.
MapmyIndiaIntouch.initialize(deviceName,clientId,clientSecret)
.then(entityId => {
console.log(entityId);
}).catch(err=>{
console.log(err.message)
});
Initialize the SDK with your Client ID , Client Secret , device name and deviceId. deviceId should be unique ID for every user.
- deviceId will be used to store the data against the particular user.
- deviceName will be used to identify the user on Portal
MapmyIndiaIntouch.initializeWithDeviceId(deviceName,clientId,clientSecret,deviceId,
(result) => {
if (result === 'success') {
//success
} else {
//error
});
Note:This method can be used in case if your users uses two mobile phone. In this case, Both the mobile phone data will be pushed against the same deviceID. So ensure that before user logging into the new phone, logout the user from previous phone and call the stop tracking method. So that always tracking data will come from the single phone.
const status = await MapmyIndiaIntouch.isRunning()
Track your app user's phone live location by using the below method.
MapmyIndiaIntouch.startTracking();
You can start tracking using below three options
- MapmyIndiaIntouch.BEACON_PRIORITY_FAST
- MapmyIndiaIntouch.BEACON_PRIORITY_OPTIMAL(default)
- MapmyIndiaIntouch.BEACON_PRIORITY_SLOW
MapmyIndiaIntouch.startTracking(MapmyIndiaIntouch.BEACON_PRIORITY_OPTIMAL);
Note: If no priority provided default will be used.
MapmyIndiaIntouch.startTrackingWithCustomConfig({
standByTimeInMins: 1,//mandatory
timeWhileMovingInSec: 10,//mandatory
beaconStartTimeInSec: 1616475626,
beaconEndTimeInSec: 1616475926,
enableRequestPermissionIfMissing:true
});
-
timeWhileMovingInSec:(number) tracking api hit time while moving in seconds.
-
standByTimeInMins:(number) tracking api hit time while standby in minutes.
-
beaconStartTimeInSec: (number) time for beacon to start tracking.(Unix epoch time)
-
beaconEndTimeInSec :(number ) time for beacon to stop tracking.(Unix epoch time)
-
enableRequestPermissionIfMissing(boolean) Location permissions will handle by SDK if set to true.Default value is true
To stop your app user's phone live location tracking use the below mentioned method.
MapmyIndiaIntouch.stopTracking();
This method will be called when tracking starts, stops or some tracking error is caught.
MapmyIndiaIntouch.addTrackingStateListener((event) => {
if(event === 'onTrackingStart'){
}else if(event === 'onTrackingStop'){
}
},(error)=>{
console.log(error.message);
});
This method will remove TrackingStateListener. Call this method before Unmounting component.
MapmyIndiaIntouch.removeTrackingStateListener();
Updates single location on server and return to the user
try {
const res= await MapmyIndiaIntouch.getCurrentLocationUpdate();
//do something with response
} catch (e) {
//error log
}
- optional parameter(Android) enableRequestPermissionIfMissing(boolean) Location permissions will be handled by SDK if set to true.Default value is true.
Email us at apisupport@mapmyindia.com
Ask a question under the mapmyindia-api
Need support? contact us!
Read about the latest updates & customer stories
© Copyright 2022. CE Info Systems Pvt. Ltd. All Rights Reserved. | Terms & Conditions