Shared event emitter between native and JS for React Native.
Uses iOS NotificationCenter
and RN DeviceEventEmitter
to provide a seamless global event bus between native and React Native.
// listen to event posted to NSNotificationCenter by native code
var eventName = GlobalEventEmitter.UIApplicationNotifications.UIApplicationDidEnterBackgroundNotification;
GlobalEventEmitter.addListener(eventName, (data) => {
console.log('UIApplicationDidEnterBackgroundNotification');
});
// event available on NSNotificationCenter for native code
var eventName = "UserDidLoginFromJS"
GlobalEventEmitter.emit(eventName, {name: 'John'});
addListener
: Add a listener for aneventName
and pass acallback
function.emit
: Emit events to native/JS globally.removeListener
: Remove a listener by passing theeventName
and the reference to the originalcallback
function.removeAllListeners
: Stop listening to all events of a particulareventName
.
Use your preferred method of including the library in your app.
Try the included example:
git clone git@github.com:paramaggarwal/react-native-global-event-emitter.git
npm install
open iOS/RNTGlobalEventEmitter.xcodeproj
Then Cmd+R
to start the React Packager, build and run the project in the simulator.
Param Aggarwal (paramaggarwal@gmail.com)
MIT License