React Native: загрузка PDF в локальное хранилище (ios)

#ios #react-native #rn-fetch-blob

#iOS #react-native #rn-выборка-blob

Вопрос:

У меня есть следующая функция для загрузки PDF-файла с моего сервера:

   const downloadInvoice = (invoiceId) => {
    const path = `${RNFetchBlob.fs.dirs.DocumentDir}/${invoiceId}.pdf`;
    RNFetchBlob.config({
      fileCache: true,
      path,
    }).fetch('GET', `${Urls.base}/pro/invoice?invoiceId=${invoiceId}`, {
      ...authorizationHeaders
    }).then((response) => {
      RNFetchBlob.ios.openDocument(path);
    }).catch((error) => {
      Alert.alert(error);
    });
  };
 

Когда я запускаю этот код, документ открывается на моем iPhone, и я вижу PDF-файл. Проблема в том, что я нигде не могу найти PDF-документ после закрытия окна. Похоже, что документ хранится в кэше, но я хочу, чтобы он был сохранен в папке, доступной на моем iPhone для последующего пользователя (или для его печати или переноса на мой ноутбук).

Путь выглядит следующим образом: /var/mobile/Containers/Data/Application/AD1F85AC-456F-321A-A4B2-1B248F1134C1/Documents/20-02-2020-01-02.pdf . Кроме того, когда я консоль.войдите в response.path(), у него тот же путь.

Я использую rn-fetch-blod, но я вижу, что этот пакет не поддерживается. Если у кого-то есть хорошая альтернатива, я буду рад ее услышать.

Ответ №1:

добавьте эти ключи для info.plist iOS

 <key> UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
 

источник : https://github.com/joltup/rn-fetch-blob/issues/212