Открыть файл, загруженный в приложении React-Native, с помощью другого приложения - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь открыть файлы (изображения, PDF-файлы, видео и т. Д.), Загруженные с помощью приложения React-Native, с моего сервера.

Итак, я использую RNFetchBlob для загрузки файла, затем я делаю следующее в зависимости от того, устройство это на iOS или Android:

openFile = (item, path) => {
    if (Platform.OS === 'ios') {
      RNFetchBlob.ios.previewDocument(path)
    } else {
      // I've tried setting a real mimetype instead of / but it still doesn't work
      RNFetchBlob.android.actionViewIntent(path, '/')
    }
}

В iOS он работает должным образом, но в Android ничего не происходит, хотя у меня есть приложения, которые могут читать изображения, PDF-файлы или видео на устройстве, на котором я тестирую.

Есть идеи, почему это не работает или как я могу сделать то же самое с другой библиотекой?

1 Ответ

1 голос
/ 10 мая 2019

Выяснили причину этого, это известная ошибка библиотеки и PR, ожидающий слияния (без таймфрейма от владельца репо). Вот ссылка на PR: https://github.com/joltup/rn-fetch-blob/pull/317

Таким образом, в основном это необходимо добавить в строку 122-123 файла android/src/main/java/com/RNFetchBlob/RNFetchBlob.java:

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

Если указанное выше не работает, выполните следующий шаг: перезаписать строку 121 в android/src/main/java/com/RNFetchBlob/RNFetchBlob.java:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 121 line
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // 122 line
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...