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-runner
Through 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
1 year ago
1 year ago
1 year ago
1 year ago
1 year 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
2 years ago