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
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago