美文网首页react native
React Native Camera Roll 的使用

React Native Camera Roll 的使用

作者: 安静守护你 | 来源:发表于2018-12-29 15:11 被阅读3548次

    先说出现的问题

    按照正常的引用三方的时候,先是安装,然后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 的使用

        本文链接:https://www.haomeiwen.com/subject/rnccqqtx.html