Как загрузить pdf-файл из локального хранилища приложений в хранилище телефона в react native с помощью expo

#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 том , что дает мне:

Ошибка «Не удалось скопировать файл во внешнее хранилище».

Является ли это хорошим направлением для его использования ? Может быть, у вас есть какие-то лучшие решения?