Как получить доступ к файлам в IOS, которые хранятся в Files.app, используя react-native-fs?

#ios #react-native #file #react-native-fs

#iOS #реагировать-родной #файл #реагировать-родной-fs

Вопрос:

Я ищу способ получить доступ к каталогу Files.app, в основном к каталогу «Downloads», но каталог, помеченный как «На моем iPhone», также будет работать. Вариант использования будет заключаться в том, что пользователь загружает сертификат вне приложения в Files.app, и приложение будет просматривать каталог для этого сертификата. Я использую ‘react-native-fs’ и попытался использовать несколько путей к каталогам файлов, предоставляемых библиотекой, таких как DocumentDirectoryPath и LibraryDirectoryPath . Я также добавил UISupportsDocumentBrowser ко info.plist всему, но безуспешно.

Просто для тестирования я использую:

     RNFS.readDir(RNFS.DocumentDirectoryPath).then(files => {
        console.log(files);
    })
    .catch(err => {
        console.log(err.message, err.code);
    });
 

Ответ №1:

Файловый менеджер не может волшебным образом «заглянуть» в мир приложений Files.app. Этот мир принадлежит приложению Files! Вы изолированы. Вы можете разрешить пользователю выбирать файл из приложения «Файлы» с помощью браузера документов, но вы не можете просто волшебным образом заглянуть в него.

Комментарии:

1. А, понятно. Итак, что-то вроде react-native-documents-picker — это то, на что я должен обратить внимание?

2. Я ничего не знаю о react native, я просто описываю, как работает iOS. Ни одно приложение не может просто заглядывать в файлы, но приложение может позволить пользователю заглядывать в файлы.

Ответ №2:

Если вы пытаетесь получить доступ к Files.app, вы можете открыть его через свое приложение, добавив LSApplicationQueriesSchemes в качестве массива info.plist . Затем добавьте shareddocuments (без ://). Это позволяет открывать файлы нажатием кнопки, если хотите.

Если вы пытаетесь получить доступ к документу в файловой системе на iOS, то лучше использовать react-native-document-picker . Я сделал это, чтобы захватить файлы .CSV, хранящиеся в любом месте на моем Ipad или облаке.