React Native 原生模块库打包指南

最终项目的 repository:react-native-baidu-ocr 原生模块(Native Module)的使用方式 React Native(下称RN)的官方文档介绍了Native Modules (下称“原生模块”)的使用方法,用于访问原生平台的 API。但是,文档里的方法并不适合直接在项目使用。 以 iOS 为例,如果按照 RN 文档的做法,你需要用 Xcode 项目的 .xcodeproj 文件,在里面新建一个 .m Objective-C File 和一个 .h Header File,然后在这两个文件里实现一个“RCTBridgeModule”协议的 Objective-C 类。 这样做的缺点我想到的有两个,一是,如果要实现的原生模块多了,.m 和 .h 也会递增,目录容易混乱难以管理;二是,这样的原生模块不容易复用,其它项目没法直接使用这个原生模块。 通行的做法是,将实现后原生模块打包好,然后存放在项目的node_modules的文件内,供 APP 调用。 打包原生模块的主要工作 打包一个原生模块,最主要的工作有两部分: 安装该模块,即 “react-native link” 完成的工作。 写代码,对于iOS,是写一个实现了“RCTBridgeModule”协议的Objective-C类;对于Android,是写一个继承了 ReactContextBaseJavaModule的Java类。 所以,要打包 React Native 的原生模块,你最好有以下知识储备: 有 RN 开发经验。如 RN 文档所说,原生模块是该框架的高级特性,当然是有一定的经验更易理解。 了解 Java 和 Objective-C, 至少能看懂这两种代码。 本文将以百度 OCR 的 iOS SDK & Android SDK 为例,介绍如何将其打包为一个名为 “react-native-baidu-ocr” 的 原生模块库(library),供 RN APP 调用。
Read more...