1.0.11 • Published 4 years ago
fat-jaguar-sdk v1.0.11
fat-jaguar-sdk
Getting started
$ npm install fat-jaguar-sdk --save
Mostly automatic installation
$ react-native link fat-jaguar-sdk
For iOS
- Install Pods
$ cd ios
$ pod install
- Setup your .plist file as laid out on this
For Android
1) Include Jitpack in your Maven dependencies in build.gradle
allprojects {
repositories {
...
// ADD IT HERE
maven {
url "https://jitpack.io"
}
}
}
2) Make sure Jetify is available in your development environment
$ npx jetify
Usage
import FatJaguarSdk from 'fat-jaguar-sdk';
componentDidMount = async () => {
// ...
const channelId = 'fat-jaguar-sdk React Native'
const channelName = 'fat-jaguar-sdk React Native'
const title = 'fat-jaguar-sdk Foreground Service'
const content = "This app is running a foreground service using location services"
// Foreground Service for Android to improve trigger rate - iOS will ignore this.
FatJaguarSdk.setForegroundNotification(channelId, channelName, title, content, true)
// If you would like to add custom event meta data
FatJaguarSdk.setCustomEventMetaData({ userId: 'user_id_goes_here' })
FatJaguarSdk.authenticate('your_application_project_id', '<Always|WhileInUse>', () => console.log("On success"), () => console.log("On fail"))
FatJaguarSdk.on('zoneInfoUpdate', (event) => {
// ...
})
FatJaguarSdk.on('checkedIntoFence', (event) => {
// ...
})
FatJaguarSdk.on('checkedOutFromFence', (event) => {
// ...
})
FatJaguarSdk.on('checkedIntoBeacon', (event) => {
// ...
})
FatJaguarSdk.on('checkedOutFromBeacon', (event) => {
// ...
})
FatJaguarSdk.on('startRequiringUserInterventionForBluetooth', (event) => {
// ...
})
FatJaguarSdk.on('stopRequiringUserInterventionForBluetooth', (event) => {
// ...
})
FatJaguarSdk.on('startRequiringUserInterventionForLocationServices', (event) => {
// ...
})
FatJaguarSdk.on('stopRequiringUserInterventionForLocationServices', (event) => {
// ...
})
}
Events
zoneInfoUpdate
{
"zoneInfos": [
{
"ID": "zone-UUID-here",
"name": "Your zone name here"
}
//...
]
}
checkedIntoFence
{
"zoneInfo": {
"ID": "zone-UUID-here",
"name": "Your zone name here"
},
"fenceInfo": {
"ID": "fence-UUID-here",
"name": "Your fence name here"
},
"locationInfo": {
"unixDate": "Timestamp of triggering location update",
"latitude": "Latitude of triggering location update",
"longitude": "Longitude of triggering location update",
"bearing": "Bearing of triggering location update (if available)",
"speed": "speed of triggering location update (if available)",
},
"customData": {
"custom-field-name": "Custom zone data field value"
},
"willCheckout": false // True if the zone has checkout enabled.
}
checkedOutFromFence
{
"zoneInfo": {
"ID": "zone-UUID-here",
"name": "Your zone name here"
},
"fenceInfo": {
"ID": "fence-UUID-here",
"name": "Your fence name here"
},
"customData": {
"custom-field-name": "Custom zone data field value"
},
"dwellTime": 5 // Number of minutes the device dwelled in the zone
}
checkedIntoBeacon
{
"zoneInfo": {
"ID": "zone-UUID-here",
"name": "Your zone name here"
},
"beaconInfo": {
"ID": "zone-UUID-here",
"name": "Your zone name here",
"macAddress": "AA:BB:CC:DD:EE:FF", // Mac address here
"proximityUuid": "beacon-UUID-here",
"major": 1, // As set on backend
"minor": 2, // As set on backend
"latitude": "Latitude of beacon",
"longitude": "Longitude of beacon",
},
"locationInfo": {
"unixDate": "Timestamp of triggering location update",
"latitude": "Latitude of triggering location update",
"longitude": "Longitude of triggering location update",
"bearing": "Bearing of triggering location update (if available)",
"speed": "speed of triggering location update (if available)",
},
"customData": {
"custom-field-name": "Custom zone data field value"
},
"willCheckout": false // True if the zone has checkout enabled.
}
checkedOutFromBeacon
{
"zoneInfo": {
"ID": "zone-UUID-here",
"name": "Your zone name here"
},
"beaconInfo": {
"ID": "zone-UUID-here",
"name": "Your zone name here",
"macAddress": "AA:BB:CC:DD:EE:FF", // Mac address here
"proximityUuid": "beacon-UUID-here",
"major": 1, // As set on backend
"minor": 2, // As set on backend
"latitude": "Latitude of beacon",
"longitude": "Longitude of beacon",
},
"locationInfo": {
"unixDate": "Timestamp of triggering location update",
"latitude": "Latitude of triggering location update",
"longitude": "Longitude of triggering location update",
"bearing": "Bearing of triggering location update (if available)",
"speed": "speed of triggering location update (if available)",
},
"customData": {
"custom-field-name": "Custom zone data field value"
},
"dwellTime": 5 // Number of minutes the device dwelled in the zone
}
startRequiringUserInterventionForBluetooth
{}
stopRequiringUserInterventionForBluetooth
{}
startRequiringUserInterventionForLocationServices
{
"authorizationStatus": "denied" // Or: restricted, notDetermined, always, whenInUse, unknown
}
stopRequiringUserInterventionForLocationServices
{
"authorizationStatus": "denied" // Or: restricted, notDetermined, always, whenInUse, unknown
}