React Native 链接原生库的方法

来源:互联网 发布:naturie薏仁面霜知乎 编辑:程序博客网 时间:2024/06/10 03:39


并不是所有的APP都需要使用全部的原生功能,包含支持全部特性的代码会增大应用的体积。但是仍然要根据自己的需求添加需要的特性。

React Native 发布的所有库都在仓库中的Libraries文件夹下。其中有一些是纯JavaScript代码,只需要去require它们就可以使用了。另外有一些库基于一些原生代码实现,必须把这些文件添加到你的应用,否则应用会在你使用这些库的时候产生报错。

添加包含原生代码的库的方式有两种:自动链接和手动链接

一、自动连接

  1. 安装一个带原生依赖的库:  $   yarn add  某个带有原生依赖的库
  2. 运行一下命令:

$   react-native link

   它会根据Package.json文件中的dependenciesdevDependencies记录来链接所有需要链接的库

二、手动链接

   1.如果该库包含原生代码,那么在它的文件夹下一定会有一个.xcodeproj文件,把这个文件拖到你的Xcode工程下(通常拖到XcodeLibraries分组里面)


  1. 点击你的主工程文件,选择Build Phases,然后把刚才所添加进来的.xcodeproj下的Products文件夹中的静态文件(.a文件),拖到Link Binary With Libraries组内。

3.不是所有的库都需要进行这个步骤,你需要考虑的问题在于:

我需要在编译的期间了解库的内容吗?

这个问题的意思是,你是需要在原生代码中使用这个库,还是只需要通过JavaScript访问?如果你只需要通过JavaScript访问这个库,你就可以跳过这步了。

这一步骤对于我们随React Native发布的大部分库来说都不是必要的,但有两个例外是PushNotificationIOSLinkingIOS

PushNotificationIOS为例,你需要在AppDelegate每收到一条推送通知之后,调用库中的一个方法。

这种情况下我们需要能够访问到库的头文件。为了能够顺利打包,你需要打开你的工程文件,选择Build Settings,然后搜索Header Search Paths,然后添加库所在的目录(如果它还有像React这样的子目录需要包含,注意要选中recursive选项)