React Native Camera Roll 的使用

先说出现的问题

按照正常的引用三方的时候,先是安装,然后link,结果也显示成功了,但是在iOS上保存图片到手机相册却一直是失败并警告,如下:

警告

根据这个警告完全看不出来是什么原因,然后再看控制台输出:

控制台输出

大体上是说saveToCameraRoll是未定义不能读的属性,属性?属性?没搞错吧,我明明是调用的这是个方法好不,有这个坑人的嘛。。。

问题的解决

翻来覆去也找不到什么有效的解决方法,偶然间看到了自己的终端,然后仔细看了下link的结果,跟以前的一样,也是两行,显示两个端link成功了,但是这次却有点不一样:

终端link结果

仔细一看,上面只是提示说安卓端的link成功了,那iOS呢?然后再翻看官网API

官网API截图

官网上显示,如若iOS要使用请参考链接原生库的文章,文章中也说了自动链接和手动链接的方式,之前的自动链接只是链接成功了安卓,我自己想可能iOS的需要再次手动链接吧,然后就照做了,之后再调用saveToCameraRoll方法成功,问题成功解决。

最后再整体大概说一下整个过程

1. 安装cameraRoll

打开终端,进入项目根目录下:
在终端执行以下命令
npm install rn-camera-roll

2. 链接android原生库

在终端执行以下命令
react-native link rn-camera-roll

3. 手动链接iOS原生库

如果该库包含原生代码,那么在它的文件夹下一定有一个.xcodeproj文件。把这个文件拖到你的 XCode 工程下(通常拖到 XCode 的Libraries分组里)
原生库所在目录为: 项目根目录/node_modules/react-native/Libraries/CameraRoll/RCTCameraRoll.xcodeproj
RCTCameraRoll.xcodeproj文件拖到项目的Libraries下,如下图:

拖入

4. 引入.a文件

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

引入.a文件

配置的工作到此为止,接下来就是调用了,这个可以参考官网,上面说的很详细。

你可能感兴趣的:(React Native Camera Roll 的使用)