ReactNative 中 android 和 ios 如何 保存 图片 到系统 相册 记得 点击 阅读更多---------------------- 往下翻

React Native 的 CameraRoll API 提供了访问本地相册的功能(经过测试该组件只支持 ios)

第一步

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

第二步

点击你的主工程文件,选择Build Phases,然后把刚才所添加进去的.xcodeproj下的Products文件夹中的静态库文件(.a文件),拖到Link Binary With Libraries组内。
image.png
第三步:
然后添加库所在的目录(如果它还有像React这样的子目录需要包含,注意要选中recursive选项)
image.png

代码使用:

import {Platform,CameraRoll} from 'react-native';
 var promise = CameraRoll.saveToCameraRoll("图片的 url")
            promise.then(function(result) {
                this.refs.toast.show("图片已保存至相册")
            }).catch(function(error) {
                this.refs.toast.show("保存失败")
            })
Android 保存:
Android 的保存利用 react-native-fs 进行保存图片

具体实现代码:

const RNFS = require('react-native-fs'); //文件处理
const storeLocation = `${RNFS.DocumentDirectoryPath}`;
     let pathName = new Date().getTime() + "文件名.png"
     let downloadDest = `${storeLocation}/${pathName}`;
      const ret = RNFS.downloadFile({fromUrl:saveImageUrl,toFile:downloadDest});
      ret.promise.then(res => {
        if(res && res.statusCode === 200){
            var promise = CameraRoll.saveToCameraRoll("file://" + downloadDest);
            promise.then(function(result) {
               console.log("图片已保存至相册")
            }).catch(function(error) {
               console.log("保存失败")
            })
        }
      })
当然第三方库 react-native-view-shot 也可以实现 Android 保存图片 到系统 相册 不过 它是 截屏 实现的。貌似不支持ios ,不过ios用 通用Api 就可以了 。android的话 就多个选择 但是 我建议还是用 npm install react-native-fs@版本号 --save 这个库 去使用它 不过安装这个库成功后 回报错 报的错误是 utf8 这个错 。所以 你得 npm install utf8 --save

猜你喜欢

转载自blog.csdn.net/qq_21937107/article/details/88338820
今日推荐