react-native-background-runner v3.3.1
๐react-native-background-runner๐
- Installation
- Features
- Preview
- Demo For Location Tracker (ANDROID ONLY)
- IOS Setup
- Android Setup
- Usage
- License
ย
Installation
Through Yarn:
yarn add react-native-background-runnerThrough NPM:
npm install react-native-background-runnerย
Features ๐๐
๐ ๏ธ Our package is designed to tackle background-related issues on both iOS and Android platforms.
๐งช Test Phase: We are currently in the initial testing phase, with many exciting enhancements on the way.
๐โโ๏ธ Background Runner on iOS: We've implemented a unique solution using the Location Core API trick to ensure seamless background running on iOS.
๐ Live Background Location Tracker (Android): Our package includes a powerful live background location tracker specifically built for Android devices.**
๐ Coming Soon to iOS: Stay tuned for the upcoming release, which will include background location tracking functionality for iOS as well.
ย
Preview
| Platform | Demo | |
|---|---|---|
| IOS | <img alt='demo-ios' | |
| Android |
ย
Demo-For-Location-Tracker-(ANDROID-ONLY)
| Traking Demo (Android only) | Gif Demo | |
|---|---|---|
| Basic Demo | <img alt='demo-ios' | |
| Live Demo |
ย
IOS-Setup
Let us not forget the mandatory strings
NSLocationAlwaysAndWhenInUseUsageDescription and NSLocationWhenInUseUsageDescription inside Our Info.plist. These are needed to display the permissions popup.
+ <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
+ <string>App Uses Location Services to allow background operations while performing long running tasks, this insures data integrity on our side, and offers a better user experience</string>
+ <key>NSLocationWhenInUseUsageDescription</key>
+ <string>App Uses Location Services to allow background operations while performing long running tasks, this insures data integrity on our side, and offers a better user experience</string>
set the right capabilities for app

ย
Android-Setup
Add the following code to android/app/src/main/AndroidManifest.xml:
<manifest ...>
...
<application ...>
...
+ <service android:name="com.backgroundrunner.BackgroundRunnerTask" />
</application>
</manifest>After adding the code to the AndroidManifest.xml file, save the changes and continue with the Usage instructions.
ย
Usage
Wrapper Component
To handle the lifecycle of your app, use the Runnable wrapper component. Place your app component within the Runnable component as follows:
<Runnable>
{/* Your app component */}
</Runnable>ย
Background Task
To perform a background task, follow these steps:
- Define an asynchronous task function that takes taskData as a parameter. This function can have different implementations based on the platform.
const task = async (taskData) => {
await new Promise(async () => {
const { delay } = taskData;
for (let i = 0; Service.isRunning(); i++) {
setRunnedValue(i);
console.log('Runned -> ', i);
await sleep(delay);
}
});
};- Use the toggleBackground function to control the background task. It checks if the background service is running and either starts or stops it accordingly.
const toggleBackground = async (runnerTask) => {
if (!Service.isRunning()) {
try {
await Service.startRunnerTask(runnerTask, options);
console.log('Successful start!');
} catch (e) {
console.log('Error', e);
}
} else {
console.log('Stop background service');
await Service.stop();
}
};Call toggleBackground(task) to start or stop the background task.
ย
Location Tracker
For now, the location tracker only supports Android. Use the following methods to work with the location tracker:
- Start watching the user's location even if the app is closed:
Service.watchLocation(
(location) => console.log('location =>>> ', location),
options
);- Stop watching the user's location:
Service.stopWatching();- Listen for location update events:
DeviceEventEmitter.addListener('locationUpdate', handleLocationUpdate);โ ๏ธ Please note that the location tracker is currently only supported on Android.
ย
License
MIT
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago