{"id":23088644,"url":"https://github.com/nanjingboy/react-native-event","last_synced_at":"2026-04-16T14:09:28.590Z","repository":{"id":57355466,"uuid":"150814657","full_name":"nanjingboy/React-Native-Event","owner":"nanjingboy","description":"React Native event emitter with callback on both Android \u0026 iOS.","archived":false,"fork":false,"pushed_at":"2018-10-03T11:16:15.000Z","size":289,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-29T21:21:33.620Z","etag":null,"topics":["android","event-emitter-callback","ios","react-native"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nanjingboy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-29T02:15:55.000Z","updated_at":"2019-12-02T09:45:28.000Z","dependencies_parsed_at":"2022-09-26T16:31:07.172Z","dependency_job_id":null,"html_url":"https://github.com/nanjingboy/React-Native-Event","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanjingboy%2FReact-Native-Event","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanjingboy%2FReact-Native-Event/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanjingboy%2FReact-Native-Event/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanjingboy%2FReact-Native-Event/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nanjingboy","download_url":"https://codeload.github.com/nanjingboy/React-Native-Event/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247043349,"owners_count":20874087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","event-emitter-callback","ios","react-native"],"created_at":"2024-12-16T20:17:36.044Z","updated_at":"2026-04-16T14:09:28.554Z","avatar_url":"https://github.com/nanjingboy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# React Native Event\n\nReact Native event emitter with callback on both Android \u0026 iOS.\n\nSometimes we send event to javascript and want to execute some native codes with javascript result, we have to write lots of template codes, so this library provide the ability to send event with callback.\n\n[![npm](https://img.shields.io/npm/v/rn-event-emitter-callback.svg?style=plastic)](https://npmjs.org/package/rn-event-emitter-callback) [![npm](https://img.shields.io/npm/dm/rn-event-emitter-callback.svg?style=plastic)](https://npmjs.org/package/rn-event-emitter-callback) [![npm](https://img.shields.io/npm/dt/rn-event-emitter-callback.svg?style=plastic)](https://npmjs.org/package/rn-event-emitter-callback)\n\n# iOS Screenshot\n\n![React Native Event iOS Screenshot](Screenshot-iOS.gif)\n\n# Android Screenshot\n\n![React Native Event Android Screenshot](Screenshot-Android.gif)\n\n# Build and run the demo\n\n```shell\n$ cd RNEventDemo/\n$ yarn install\n$ react-native run-ios # or react-native run-android\n```\n\n# Setup\n\n#### Install:\n\n```shell\n$ yarn add rn-event-emitter-callback\n```\n\n#### iOS:\n\n* You must be consuming React itself via [CocoaPods](https://cocoapods.org/) for this to work, see [React Native documentation](https://facebook.github.io/react-native/docs/integration-with-existing-apps) on how to set that up.\n\n* Add the following to your `Podfile` and run `pod update`\n\n  ```\n  pod 'ReactEventEmitter', :path =\u003e '../node_modules/rn-event-emitter-callback/Source/ios/'\n  ```\n\n#### Android：\n\n* Edit `android/settings.gradle` to look like this (without the +):\n\n  ```diff\n  rootProject.name = 'MyApp'\n\n  include ':app'\n\n  + include ':ReactEventEmitter'\n  + project(':ReactEventEmitter').projectDir = new File(rootProject.projectDir, '../node_modules/rn-event-emitter-callback/Source/android')\n  ```\n\n* Edit `android/app/build.gradle` to look like this:\n\n  ```diff\n  apply plugin: 'com.android.application'\n\n  android {\n    ...\n  }\n\n  dependencies {\n    implementation fileTree(dir: \"libs\", include: [\"*.jar\"])\n    implementation \"com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}\"\n    implementation \"com.facebook.react:react-native:+\"  // From node_modules\n    implementation 'org.greenrobot:eventbus:3.1.1'\n  + implementation project(':ReactEventEmitter')\n  }\n  ```\n\n\n* Edit `MainApplication.java` to look like this:\n\n  ```diff\n  package com.myapp;\n\n  + import me.tom.react.event.ReactEventEmitterPackage;\n\n  ....\n\n    @Override\n    protected List\u003cReactPackage\u003e getPackages() {\n      return Arrays.\u003cReactPackage\u003easList(\n        new MainReactPackage()\n  +   , new ReactEventEmitterPackage()\n      );\n    }\n\n  }\n  ```\n\n\n# Demo\n\n* [JavaScript](RNEventDemo/App.js#L14-L25)\n* [iOS](RNEventDemo/ios/RNEventDemo/AppDelegate.m#L53-L60)\n* [Android](RNEventDemo/android/app/src/main/java/com/rneventdemo/MainActivity.java#L45-L53)\n\n# API\n\n#### JavaScript\n\n```javascript\nReactEventEmitter.addListener(name, (params, callback) =\u003e {});\nReactEventEmitter.removeListener(name);\n```\n\n#### iOS\n\n```objc\n- (void)sendEvent:(RCTBridge *)bridge name:(NSString *)name;\n- (void)sendEvent:(RCTBridge *)bridge name:(NSString *)name\n           params:(id)params;\n- (void)sendEvent:(RCTBridge *)bridge name:(NSString *)name\n         callback:(ReactEventEmitterCallbackHandler)callback;\n- (void)sendEvent:(RCTBridge *)bridge name:(NSString *)name\n           params:(id)params\n         callback:(ReactEventEmitterCallbackHandler)callback;\n```\n\n#### Android\n\n```java\npublic void sendEvent(ReactContext context, String name);\npublic void sendEvent(ReactContext context, String name, @Nullable Object params);\npublic void sendEvent(ReactContext context,\n                      String name,\n                      @Nullable ReactEventEmitterCallbackHandler callbackHandler);\npublic void sendEvent(ReactContext context,\n                      String name,\n                      @Nullable Object params,\n                      @Nullable ReactEventEmitterCallbackHandler callbackHandler);\n```\n\n# Note\n\nThe callback is run in main thread.\n\n# License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanjingboy%2Freact-native-event","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnanjingboy%2Freact-native-event","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanjingboy%2Freact-native-event/lists"}