首页 > 解决方案 > React Native 向 JSI TruboModule 注册一个回调,以便稍后回调来自 android java 代码的事件

问题描述

下面是我编写的注册和稍后回调的代码

 void TrimNativeModule::sendKeyEvent(jsi::Runtime &rt, const jsi::Object &arg) {
        if (keyCallback != nullptr) {
            jsi::Function funPtr = keyCallback->getFunction(rt);
            jsInvoker_->invokeAsync([&rt, &funPtr](){
                funPtr.call(rt);
            });
        }
    }

    void TrimNativeModule::registerKeyCallback(jsi::Runtime &rt, const jsi::Function &callback) {
        keyCallback = &callback;
    }

下面是JS端代码

  global.trimModule?.registerKeyCallback(() => {
  console.log("Got Call back");
});

注册正在工作,但是当我稍后尝试调用sendKeyEvet来自 Java 原生函数的事件时,回调不会被回调

对此的任何帮助或指示都会有所帮助

标签: androidreact-nativereact-native-androidreact-native-native-modulenative-module

解决方案


推荐阅读