我正在使用RNCamera及其工作很好(下面是我的功能)。我可以拍摄图像并将其保存到照片库。虽然有人对如何保存到IOS上的特定专辑有见识?我见过针对Android的解决方案,该方法也没有任何选择。不知道如何解决这个问题。 TIA。我在想可能需要编辑uri?似乎不对,只是在寻找想法。可能需要修改node_modules / react_native / Libraries / CameraRoll中的库文件“CameraRoll.js”?
-阅读本机文档https://facebook.github.io/react-native/docs/cameraroll.html
-搜索stackoverflow(找到带有Android解决方案的线程)/ google
async takePicture() {
if (this.camera) {
const options = { quality: 0.5, based64: true }
const data = await
this.camera.takePictureAsync(options).then(data =>
console.log(data.uri))
CameraRoll.saveToCameraRoll(data.uri, 'photo'));
}
};
最佳答案
您需要npm install react-native-fs ...,这是您的saveFile
方法:
const saveFile = (base64) => {
const albumPath = `${RNFS.PicturesDirectoryPath}/${APP_NAME}`;
const fileName = `${new Date().getTime()}.png`;
const filePathInCache = `${RNFS.CachesDirectoryPath}/${fileName}`;
const filePathInAlbum = `${albumPath}/${fileName}`;
return RNFS.mkdir(albumPath)
.then(() => {
RNFS.writeFile(filePathInCache, base64, 'base64').then(() => RNFS.copyFile(filePathInCache, filePathInAlbum)
// Next step to show album without the need to re-boot your device:
.then(() => RNFS.scanFile(filePathInAlbum))
.then(() => {
console.log('File Saved Successfully!');
}));
})
.catch((error) => {
console.log('Could not create dir', error);
});
};