Skip to content

sreejithr/react-native-context-execute

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-native-context-execute

Execute JS code in React Native's context even when RN is inactive (eg. app in background).

In Android, where background services are indispensable, keeping RN in sync can be hard since RN doesn't stay active in background. Currently, Android-only.

A tiny library which registers a JavascriptModule in RN's JavascriptModuleRegistry and makes Catalyst (Bridge) run it.

Before using this, please note that HeadlessJS is another good way to go.

Getting started

$ npm install react-native-context-execute --save

Mostly automatic installation

$ rnpm link react-native-context-execute

Manual installation

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactlibrary.RNContextExecutePackage; to the imports at the top of the file
  • Add new RNContextExecutePackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-context-execute'
    project(':react-native-context-execute').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-context-execute/android')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-context-execute')
    

Usage

In your Java side, grab hold of the ReactApplicationContext and do,

WritableMap payload = Arguments.createMap();
payload.putString("some_key", "some_value");

new ReactContextExecutor(reactApplicationContext).execute("some_other_key", payload);

In JS side,

import { ContextExecute } from 'react-native-context-execute';

ContextExecute((op, data) => {
    // Do your thing
});

About

Execute JS code in React Native context

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published