我正在开发一个世博会应用程序,我在其中生成QR Code.I正在获取base64字符串,我可以保存为jpg或png在画廊/album.so远,在Android上,它工作正常,正如预期.但在IOS上,它是给这个错误
文件“(null)”不可写
- promiseMethodWrapper中的节点模块/React Native/库/批处理桥/本机模块.js:103:50
- node_modules/@unimodules/React Native适配器/构建/本机模块代理。本机。js:15:23,位于moduleName.methodInfo.name
- writeAsStringAsync中的节点模块/expo文件系统/构建/文件系统.js:50:17
我使用expo文件系统方法writeAsStringAsync()这是我的代码。
const filename = FileSystem.documentDirectory + `${imageName}.jpg`;
let newFile = decodeURI(filename).replace('file://', '') ;
console.log(newFile)
FileSystem.writeAsStringAsync(filename, base64Code, {
encoding: FileSystem.EncodingType.Base64,
}).then(()=>{
console.log('worked')
}).catch((e)=>{
console.log(e)
});
await MediaLibrary.saveToLibraryAsync(filename).then(()=>{
setIsSavedGallery(true);
setTimeout(showAlertGallery, 1000);
}).catch((e)=>{
console.log(e)
});
关于这个错误的任何线索?我怎么能修复?我做错了什么?我似乎不能理解.任何形式的帮助将不胜感激.谢谢
2条答案
按热度按时间bvk5enib1#
我也遇到过同样的问题,我的问题是文件名上有一个空格,在iOS上不太好用,所以我把这个空格换成了_
wlp8pajw2#
我可以确认这个问题是因为空间问题。
我使用正则表达式将它们替换为下划线。