Функция чтения файлов дает сбой в RNFetchBlob в ответном нативном Android ⇐ Android
Функция чтения файлов дает сбой в RNFetchBlob в ответном нативном Android
Я пытаюсь поделиться PDF-файлом в React Native. Но приложение при этом вылетает. Пожалуйста помоги. Ниже приведен код
асинхронная функция func_1( pdfUrl: строка, ) { let result = Platform.OS === 'android' && (ожидайте requestReadSmsPermission()); пусть filePath: строка | ноль = ноль; пытаться { если ( (результат && Platform.OS == 'android' && результат?.[PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE] === РазрешенияAndroid.RESULTS.GRANTED && результат?.[PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE] === РазрешенияAndroid.RESULTS.GRANTED) || Платформа.OS == 'ios' ) { const dirs = RNFetchBlob.fs.dirs; const DynamicFileName = `FileName_123.pdf`; const имя_отчета = имя_динамического_файла; константный путь загрузки = Платформа.OS === 'ios' ? (dirs.DocumentDir || dirs.MainBundleDir) + '/' + reportName : dirs.DownloadDir + '/' + reportName; RNFetchBlob.config({ файлКэш: правда, путь: Путь загрузки, addAndroidDownloads: { заголовок: имя отчета, использоватьDownloadManager: правда, уведомление: правда, путь: Путь загрузки, мим: mimeType(downloadPath), описание: 'Файл загружен менеджером загрузок.', }, }) .fetch('GET', encodeURI(pdfUrl), {}) .then(async (res) => { console.log({рез}); filePath = res?.path(); console.log({filePath}); константная доляOptions = { заголовок: динамическоеИмяФайла, URL: `file://${res?.path()}`, неудачаOnCancel: ложь, showAppsToView: правда, mimeType: 'приложение/pdf', }; Share.open(shareOptions); }) .catch((ошибка) => { console.log(ошибка) }); } еще { } } поймать (ошибиться) { console.log(ошибка) } } Когда я пытаюсь использовать приведенный выше код, все работает, но при предоставлении общего доступа к файлу появляется сообщение: Не удалось предоставить общий доступ, повторите попытку позже. (пробовал в ватсапе, командах). Мой путь к файлу выглядит примерно так: /storage/emulated/0/Download/FileName_123.pdf
Когда я настраиваю код для uri как base64, приложение вылетает без каких-либо журналов
RNFetchBlob.config(configOptions) .fetch('ПОЛУЧИТЬ', pdfUrl) .then((соответственно) => { filePath = соответственно?.path(); return resp?.readFile('base64'); // здесь происходит сбой. }) .then(async (base64Data) => { base64Data = `данные:${type};base64,` + base64Data; ждут Share.open({title: DynamicFileName, url: base64Data }); }) .catch((ошибка) => { console.log(ошибка) }); Я использую «react-native-share»: «^6.2.1» и «rn-fetch-blob»: «^0.12.0», а собственная версия реакции — «реагировать-native»: «0.67.4» ".
Пожалуйста, помогите, кто-то застрял уже неделю. Проверка на Android > 10
Я пытаюсь поделиться PDF-файлом в React Native. Но приложение при этом вылетает. Пожалуйста помоги. Ниже приведен код
асинхронная функция func_1( pdfUrl: строка, ) { let result = Platform.OS === 'android' && (ожидайте requestReadSmsPermission()); пусть filePath: строка | ноль = ноль; пытаться { если ( (результат && Platform.OS == 'android' && результат?.[PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE] === РазрешенияAndroid.RESULTS.GRANTED && результат?.[PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE] === РазрешенияAndroid.RESULTS.GRANTED) || Платформа.OS == 'ios' ) { const dirs = RNFetchBlob.fs.dirs; const DynamicFileName = `FileName_123.pdf`; const имя_отчета = имя_динамического_файла; константный путь загрузки = Платформа.OS === 'ios' ? (dirs.DocumentDir || dirs.MainBundleDir) + '/' + reportName : dirs.DownloadDir + '/' + reportName; RNFetchBlob.config({ файлКэш: правда, путь: Путь загрузки, addAndroidDownloads: { заголовок: имя отчета, использоватьDownloadManager: правда, уведомление: правда, путь: Путь загрузки, мим: mimeType(downloadPath), описание: 'Файл загружен менеджером загрузок.', }, }) .fetch('GET', encodeURI(pdfUrl), {}) .then(async (res) => { console.log({рез}); filePath = res?.path(); console.log({filePath}); константная доляOptions = { заголовок: динамическоеИмяФайла, URL: `file://${res?.path()}`, неудачаOnCancel: ложь, showAppsToView: правда, mimeType: 'приложение/pdf', }; Share.open(shareOptions); }) .catch((ошибка) => { console.log(ошибка) }); } еще { } } поймать (ошибиться) { console.log(ошибка) } } Когда я пытаюсь использовать приведенный выше код, все работает, но при предоставлении общего доступа к файлу появляется сообщение: Не удалось предоставить общий доступ, повторите попытку позже. (пробовал в ватсапе, командах). Мой путь к файлу выглядит примерно так: /storage/emulated/0/Download/FileName_123.pdf
Когда я настраиваю код для uri как base64, приложение вылетает без каких-либо журналов
RNFetchBlob.config(configOptions) .fetch('ПОЛУЧИТЬ', pdfUrl) .then((соответственно) => { filePath = соответственно?.path(); return resp?.readFile('base64'); // здесь происходит сбой. }) .then(async (base64Data) => { base64Data = `данные:${type};base64,` + base64Data; ждут Share.open({title: DynamicFileName, url: base64Data }); }) .catch((ошибка) => { console.log(ошибка) }); Я использую «react-native-share»: «^6.2.1» и «rn-fetch-blob»: «^0.12.0», а собственная версия реакции — «реагировать-native»: «0.67.4» ".
Пожалуйста, помогите, кто-то застрял уже неделю. Проверка на Android > 10
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Невозможно взаимодействовать с Webview только в ответном нативном Android
Anonymous » » в форуме Android - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-