react native中依赖@react-native-camera-roll/camera-roll库实现图片保存到相册

react native中依赖@react-native-camera-roll/camera-roll库实现图片保存到相册

环境:react@18.2 react native@0.72

安装依赖

npm install react-native-fs --save

npm i @react-native-camera-roll/camera-roll

RNFS 文档

cameraRoll 文档

使用

import RNFS from 'react-native-fs';
import { CameraRoll } from "@react-native-camera-roll/camera-roll";
import Toast from 'react-native-toast-message';

 //点击-保存海报
    const downloadHandle = () => {
        const imageUrl = 'https://www.xxx.com/images/P18-%E9%A2%84%E5%94%AE%E9%A1%B5%E9%9D%A2_1920.png'; // 图片的URL
        const downloadDest = `${RNFS.DocumentDirectoryPath}/poster.png`; // 下载目标路径
        try {
            RNFS.downloadFile({
                fromUrl: imageUrl,
                toFile: downloadDest,
            }).promise.then(response => {
                console.log("[下载海报]", response, downloadDest)
                saveToCameraRoll(downloadDest);
            })

        } catch (error) {
            console.error('图片下载错误:', error);
            Toast.show({
                type: 'error',
                text1: '图片下载错误',
                topOffset: 300,
                autoHide: true,
                visibilityTime: 1500,
                onHide: () => { },
            });
        }


    }
    // 保存图片到相册
    const saveToCameraRoll = async (imageURI) => {
        try {
            await CameraRoll.save(imageURI, { type: 'photo', album: 'MyAlbum' });
            console.log('Image saved to camera roll successfully');
            Toast.show({
                type: 'success',
                text1: '图片保存成功',
                topOffset: 300,
                autoHide: true,
                visibilityTime: 1500,
                onHide: () => { },
            });
        } catch (error) {
            console.error('Error saving image to camera roll:', error);
            Toast.show({
                type: 'error',
                text1: '图片保存失败',
                topOffset: 300,
                autoHide: true,
                visibilityTime: 1500,
                onHide: () => { },
            });
        }
    };
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值