用途:在 React Native 应用中创建自定义原生模块、集成第三方原生库,或访问 JavaScript 层无法提供的平台特定能力,例如相机、生物识别、设备信息、原生 UI 组件以及原生向 JS 发送事件。
主要能力:覆盖原生模块桥接(JavaScript 层与 iOS/Android 原生层之间的 Bridge)与 Turbo Modules 现代方案,后者通过类型定义提供更好的性能与类型安全。资料给出 iOS(Swift 与桥接 .m 文件)、Android(Kotlin 模块与 Package)的实现骨架,以及 TypeScript 类型包裹与链接错误提示;演示了从 JS 调用原生方法、使用 NativeEventEmitter 监听原生事件、requireNativeComponent 使用原生视图,并列出相机、生物识别、设备信息等常见模式。
使用方式:iOS 侧用 @objc 导出方法并配合 RCT_EXTERN_MODULE 桥接文件,必要时实现 requiresMainQueueSetup;Android 侧继承 ReactContextBaseJavaModule 并用 @ReactMethod 暴露方法,再通过 ReactPackage 注册;JS 侧经 NativeModules 或 TurboModuleRegistry.getEnforcing 获取模块,用 Promise 处理异步结果,用 NativeEventEmitter 订阅事件;建议再用 TypeScript 接口包裹并在未链接时抛出提示。若使用 iOS 依赖,资料中的错误提示提到可运行 pod install 并重新构建应用。
适用场景与限制:适合需要平台原生能力、性能敏感计算或自定义原生视图的 React Native 项目。资料给出反模式提醒:不要阻塞主线程(应放到后台队列或线程)、不要忽略错误处理(Promise 应 resolve/reject)、避免内存泄漏(如使用弱引用并在 deinit 中清理定时器)、不要使用同步网络或 IO 操作。资料未提供具体安装命令、版本要求、收费与价格信息,相关细节暂未提供。