expo react native 保存base64图片

2023-11-20  本文已影响0人  王宣成
import * as MediaLibrary from 'expo-media-library';
import * as FileSystem from 'expo-file-system';


    async function saveBase64ImageToAlbum(base64Image) {

        const { status } = await MediaLibrary.requestPermissionsAsync();

        if (status === 'granted') {
            const filename = FileSystem.cacheDirectory + "qrcode.png";
            await FileSystem.writeAsStringAsync(filename, base64Image, {
                encoding: FileSystem.EncodingType.Base64,
            });

            const asset = await MediaLibrary.createAssetAsync(filename);

            const album = await MediaLibrary.getAlbumAsync('My Album');

            // if (album === null) {
            //     await MediaLibrary.createAlbumAsync('My Album', asset, true);
            // } else {
            //     await MediaLibrary.addAssetsToAlbumAsync([asset], album, true);
            // }

            toastRef.current.show(t('success'));
            console.log('Image saved to album!');
        } else if (status === 'denied') {
            console.error('Permissions to access camera roll denied!');
            // 在此处可以显示一个提示,告知用户需要授予访问相册的权限
            Alert.alert(t('cancel'))
        } else {
            Alert.alert(t('cancel'))
            console.error('Permissions to access camera roll not granted!');
            // 在此处可以显示一个提示,告知用户需要授予访问相册的权限
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读