React-Native - Как создать файл и сразу же открыть его - PullRequest
0 голосов
/ 02 июля 2019

Я использую response-native-fs для создания CSV-файла, и каждый раз этот файл создается успешно.Однако я хочу открыть этот CSV-файл в другом приложении сразу после создания.Я использую Linking.openURL, и он позволяет мне выбрать, в каком приложении открыть файл csv, но независимо от того, какое приложение я выберу, они всегда не смогут прочитать файл csv.

Например,Microsoft Excel сообщает: «Не удается открыть файл. Попробуйте сохранить файл на устройстве и затем открыть его» * ​​1003 *

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

Я пробовал файлы CSV, HTML и TXT.Открытие файла CSV в Excel, Google листов и CSV Viewer.Сохранение файла в разных местах.И подождите секунду, прежде чем мое приложение откроет файл.(Все сбой)

Вот только мой код.

    var toFolder = RNFS.ExternalStorageDirectoryPath + '/Download/';
    var fileName = 'SomeFile.csv';
    var content = "June 27,June 28,June 29,June 30\n2,3,4,5";

    RNFS.writeFile(toFolder + fileName, content, 'utf8')
    .then((success) => {})
    .catch((err) => {
        Alert.alert("Can't save file")
        return;
    });

    var readFrom = "content://com.sec.android.app.myfiles.FileProvider/device_storage/Download/" + fileName;

    Linking.canOpenURL(readFrom)
    .then((supported) => {
        if (supported) {
            Linking.openURL(readFrom);
        } else {
            Alert.alert("Opening this file is not supported")
        }
    }).catch((err) => {});

Другие приложения должны иметь возможность открывать файл из моего приложения, без необходимости заходить в системные файлы и открывать еговручную.Есть идеи?В противном случае, я также был бы в порядке, если есть способ открыть приложение папки загрузок из моего приложения, но я не смог найти никакой информации по этому поводу.Любой ответ приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...