gpt4 book ai didi

android - 在 Android 10 上使用 RNFetchBlob 的下载管理器 React Native 下载文件

转载 作者:行者123 更新时间:2023-12-04 14:12:30 25 4
gpt4 key购买 nike

我需要使用 rn-fetch-blob 将文件下载到 React Native 应用程序中用户的下载目录中,但它似乎与 Android 10 不兼容,因为我收到错误消息:

enter image description here

首先我请求权限:

try {
const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
await actualDownloadPDF();
} else {
ToastAndroid.show('Nepovolili jste ukládání souborů do zařízení.', ToastAndroid.LONG);
}
} catch (err) {
console.warn(err);
}

然后我尝试下载文件:

const res = await RNFetchBlob.config({
addAndroidDownloads: {
useDownloadManager: true,
notification: true,
mime: 'application/pdf',
title: filename,
path: dirs.DownloadDir,
},
}).fetch('GET', url, {
Authorization: 'Bearer ' + Api.Bearer,
});

Android 10 似乎要求开发人员打开 Intent,用户可以在其中选择对文件夹的写入权限( https://developer.android.com/training/data-storage/shared/documents-files#grant-access-directory ),但我不确定该怎么做,因为 RNFetchBlob 似乎还没有此功能。

关于如何使这项工作有任何想法吗?它在 Android 9 上运行良好。

最佳答案

const fileName = 'document.pdf'; 
const destPath = RNFetchBlob.fs.dirs.DownloadDir + '/' + fileName;

const config = {
fileCache : true,
path: destPath,
addAndroidDownloads: {
title: destPath,
description: `Download ${destPath}`,
useDownloadManager: false,
notification: false,
}
};

const res = await RNFetchBlob.config(config)...

我正在使用此代码,它适用于 Android 10。

关于android - 在 Android 10 上使用 RNFetchBlob 的下载管理器 React Native 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63133813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com