android - 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 原生函数的事件时,回调不会被回调
对此的任何帮助或指示都会有所帮助
解决方案
推荐阅读
- hive - Athena 的 .csv.metadata 文件的数据格式是什么?
- stm32 - 在 stm32H7 上运行 YOLOv3-tiny 怎么样?
- ruby - RubyMine 在尝试创建 SDK 时出现通信错误
- javascript - 如何通过 SocketIO 使用 CommonJS 导出和导入?
- c# - 如何从动态代码中使用的特定节点访问子节点?
- laravel - 不显示搜索结果
- coredump - exec查询cmd时的Greenplum coredump
- python - 查找使用列表表示的所有组合
- java - 如何修复“org.hibernate.boot.registry.selector.spi.StrategySelectionException:无法解析名称 [org.hibernate.dialect.MySQL8Dialect]”?
- python - 如何更改列表中文件的文件扩展名