Code Monkey home page Code Monkey logo

react-native-foreground-service's Introduction

react-native-foreground-service

Android only foreground service with JS code support, This is a library which can help to run headless js task while your app is in background, such as geolocation update, play music, fetch data,

TODO: Write a proper readme.

Thanks to the following repos to provide ideas and insight about how to do this. https://github.com/voximplant/react-native-foreground-service https://github.com/zo0r/react-native-push-notification/

Installation

- Add to package.json
"react-native-foreground-service": "github:cristianoccazinsp/react-native-foreground-service",

-- For react native >= 60.0 , autolinking is used  

-- For react native previous versions 

react-native link react-native-foreground-service

Add/configure the following into the AndroidManifest.xml

```
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />


add a color.xml file in /android/app/src/main/res/values
```
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item  name="orange"  type="color">#FF4500
</item>
<integer-array  name="androidcolors">
<item>@color/orange</item>
</integer-array>
</resources>
```

<!-- inside application -->

<meta-data android:name="com.zinspector.foregroundservice.notification_channel_name"
            android:value="zInspector Service"/>
<meta-data  android:name="com.zinspector.foregroundservice.notification_channel_description"
            android:value="zInspector Service."/>
<meta-data  android:name="com.zinspector.foregroundservice.notification_color"
            android:resource="@color/orange"/>

<service android:name="com.zinspector.foregroundservice.ForegroundService"></service>
<service android:name="com.zinspector.foregroundservice.ForegroundServiceTask"></service>
```

Usage:

TODO, but basically: register headless task (at module level) and then call the methods from index.js with the notification config

```
import ForegroundService from 'react-native-foreground-service';


// register task with a given name and function
let foregroundTask = async (data) => {
    await myTask();
}
ForegroundService.registerForegroundTask("myTaskName", foregroundTask);


// then later, start service, and send tasks

let notificationConfig = {
    id: 3,
    title: 'Service',
    message: `blah message`,
    visibility: 'public',
    importance: 'low',
    number: String(1)
};

await ForegroundService.startService(notificationConfig);

await ForegroundService.runTask({
  taskName: 'myTaskName',
  delay: 0
});


// stop service when no longer needed
await ForegroundService.stopServiceAll();
// or await ForegroundService.stopService();


```

Demo

Take Geolocation while the app in Background 

https://github.com/nahidmbstu/React-Native-Foreground-Service-Demo

react-native-foreground-service's People

Contributors

cristianocca avatar cristianoccazinsp avatar dependabot[bot] avatar nahidmbstu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

react-native-foreground-service's Issues

list of Bugs

There are servarl bugs in your library.

  • need a validation that checks if foreground is already running dont run the app again.
  • Background task on headless is not working as expected. It doesn't runs in the background.
  • on Stop the myTask if have a loop or a interval, it will keep on running.

Icon values ignored

I added icon and largeIcon to the notificationConfig and the notification continues to show the default image.

The title, display text etc doesn't seem to be showing in the notification: It looks like a full default notification.

readme file states the wrong package

  • Add to package.json
    "react-native-background-upload": "github:cristianoccazinsp/react-native-foreground-service",

Should be "react-native-foreground-service" instead of "react-native-background-upload"

Title and message do not function

When using startService or updateNotification the title and message are not displayed in the notification. You always get:

"Service" is running
Tap for more information or to stop the app.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.