Как скачать PDF-файл в реагировать родной?
Я создаю приложение с React Native и Expo для Android и iOS. Я пытаюсь позволить пользователю загрузить файл PDF при нажатии на кнопку. Я работаю над этим пару дней и нахожу следующие пакеты:
- реагировать-нативную выборку-клякса / гп-выборку-блобо
- реагируют родное фс
первый поднимает:
undefined не является объектом (оценка 'RNFetchBlob.DocumentDir')
и для второго ошибка:
undefined не является объектом (оценка 'RNFSManager.RNFSFileTypeRegular')
Ранее я тестировал ссылку npm, извлечение пряжи, перезапуск упаковщика и некоторые другие обходные пути от GitHub и stackoverFlow, но моя проблема еще не решена.
любая помощь высоко ценится. Спасибо.
1 ответ
Если вы знакомы с редуксом, вот как я это сделал:
// Action creator
export const downloadItem = (uri, id) => dispatch =>
RNFetchBlob.config({
fileCache: true,
// Where it will be located on the phone
path: RNFetchBlob.fs.dirs.CacheDir + "/" + SHA1(uri) + ".pdf",
// So I can easily delete all my files by reference if I need to
session: "all"
})
.fetch("GET", uri)
.progress({ count: 10 }, (received, total) => {
dispatch({
type: "DOWNLOAD_PROGRESS",
id,
progress: received / total
});
})
.then(res => {
dispatch({
type: "DOWNLOAD_COMPLETE",
id,
path: res.path()
});
})
.catch(error => {
dispatch({
type: "DOWNLOAD_ERROR",
id,
error: String(error)
});
});
res.path()
будет URI, где вы можете найти его позже. Если вы хотите сохранить какой-либо путь к файлу где-нибудь, чтобы потом открыть его, вы можете использовать что-то вроде firebase или, как я это сделал, redux persist.