React Native Camera Roll 的使用
先说出现的问题
按照正常的引用三方的时候,先是安装,然后link
,结果也显示成功了,但是在iOS上保存图片到手机相册却一直是失败并警告,如下:
根据这个警告完全看不出来是什么原因,然后再看控制台输出:
控制台输出大体上是说saveToCameraRoll
是未定义不能读的属性,属性?属性?没搞错吧,我明明是调用的这是个方法好不,有这个坑人的嘛。。。
问题的解决
翻来覆去也找不到什么有效的解决方法,偶然间看到了自己的终端,然后仔细看了下link
的结果,跟以前的一样,也是两行,显示两个端link
成功了,但是这次却有点不一样:
仔细一看,上面只是提示说安卓端的link
成功了,那iOS呢?然后再翻看官网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文件配置的工作到此为止,接下来就是调用了,这个可以参考官网,上面说的很详细。