[英]How do I access ReactContext from Java code in React Native?
[英]React Native (Android Native Module): Get access to ReactContext in another Class?
我想在 MyCustomModuleClass 中調用一個方法從另一個類擴展 ReactContextBaseJavaModule
自定義模塊.java
public class MyCustomModule extends ReactContextBaseJavaModule {
private ReactContext mReactContext;
public MyCustomModule(ReactApplicationContext reactContext) {
super(reactContext);
mReactContext = reactContext;
}
@Override
public String getName() {
return "CustomModule";
}
private void sendEvent(String eventName, Object params) {
mReactContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit(eventName, params);
}
}
我正在嘗試這個..
其他類.java
public class OtherClass extends AnotherClass {
@Override
protected void eventOccurred(Context context) {
MyCustomModule RNC = new MyCustomModule(?);//-> Can't call without ReactContext
RNC.sendEvent("CustomEvent", ObjectData);
}
}
對不起,我對java一無所知,有人可以幫我嗎?
有什么辦法可以在 OtherClass 中獲得 ReactContext?
這是我在FirebaseMessagingService
擴展類中的做法。
public class MyPushListener extends FirebaseMessagingService {
@Override
public void onMessageReceived(JSONObject message, JSONObject content){
MainApplication application = (MainApplication) this.getApplication();
ReactNativeHost reactNativeHost = application.getReactNativeHost();
ReactInstanceManager reactInstanceManager = reactNativeHost.getReactInstanceManager();
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
if (reactContext != null) {
WritableNativeArray params = new WritableNativeArray();
params.pushString(message.toString());
reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("EVENT_HAS_TRIGGERED", params);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.