#javascript #react-native #expo
#язык JavaScript #реагировать-родной #Экспо
Вопрос:
Я ищу способ загрузить двоичный pdf-файл, который я получаю через api. У меня есть этот файл в локальной файловой системе приложения, но я хотел бы загрузить его на свой телефон.
const pdf = Buffer.from(res.data, "binary").toString("base64"); const fileUri = FileSystem.documentDirectory `${encodeURI("generated")}.pdf`; FileSystem.writeAsStringAsync(fileUri, pdf, { encoding: FileSystem.EncodingType.Base64 }).then((respond) =gt; { downloadPdf(fileUri); //Sharing.shareAsync(fileUri); // Here I can share file by other apps }); const downloadPdf = async (uri) =gt; { //Linking.openURL(uri) // #approach 1 // MediaLibrary.saveToLibraryAsync(uri).then(res =gt; { // #approach 2 // console.log(res) // }).catch(err =gt; { // console.log(err) // }) const permissions = await MediaLibrary.getPermissionsAsync(); try { const asset = await MediaLibrary.createAssetAsync(uri); // #approach 3 const album = await MediaLibrary.getAlbumAsync("Downloads"); if (album == null) { await MediaLibrary.createAlbumAsync("Downloads", asset, false); } else { await MediaLibrary.addAssetsToAlbumAsync([asset], album, false); } } catch (e) { console.log(e) } };
Я пробовал разные способы сделать это, но остановился здесь на expo-media-library
том , что дает мне:
Ошибка «Не удалось скопировать файл во внешнее хранилище».
Является ли это хорошим направлением для его использования ? Может быть, у вас есть какие-то лучшие решения?