相关疑难解决方法(0)

如何编写重用常见 JavaScript 代码的 React Native“本机模块”(桥)?

原生模块如何回调到 JavaScript 内部桥接方法,然后在内部方法中进行处理,例如将数据解析为 JSON,然后引发 React Native 应用程序接收到的事件?

对于跨平台的桥模块,我想避免在重复的代码目标C和Java。如果可能,我想用 JavaScript 编写跨平台桥接模块代码,并在 Android 和 iOS 上重复使用。

我目前的解决方案:

这有效。

这将导致对 sendEventWithName 的两次调用:

  1. 带有“_processResponseInJavaScriptMethod”的 sendEventWithName
  2. forwardEventWithName 到 sendEventWithName 到本机应用程序。

题:

本机代码是否有一种方法可以使用 JS 调用同步处理数据,然后使用 sendEventWithName 立即发送结果?

还是每个 native > JS 调用都需要 async _bridge enqueueJSCall

文件:MyNativeModule.m

// 使用 forwardEventWithName 来转发事件 
// 由常见的跨平台JS处理到react native app
RCT_EXPORT_METHOD(forwardEventWithName:(NSString*)name
                  正文:(NSString*)正文){
    [self sendEventWithName:name body:body];
}

// 1 - 响应本机应用程序调用 sendQueryToBluetoothDevice
// 2 - 设备在收到响应时调用 commandResponse
RCT_EXPORT_METHOD(sendQueryToBluetoothDevice:(NSString*)command {
    [_device sendCommand:command];
}

// 1 - 从外部蓝牙设备接收 XML 响应
// 2 …

bridge react-native

14
推荐指数
2
解决办法
1928
查看次数

标签 统计

bridge ×1

react-native ×1