我需要使用rn-fetch-blob将文件下载到 React Native 应用程序中用户的下载目录,但似乎它与 Android 10 不兼容,因为我收到错误:
首先我请求权限:
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 上运行良好。