1

我正在尝试使用 RNFetchBlob 下载一个给定 Base64 字符串的 Excel 表,我可以下载 android、SDK 版本 29,但是当我尝试从 android 11 下载时,它显示错误:不允许操作。

我的代码是:

downloading = (data, arrayBuffer) => {
    var date = moment()
        .utcOffset('+05:30')
        .format('YYYY-MM-DD hh:mm:ss');
    let docName = `Excel_${date}.xlsx`
    let pathToWrite = ''
    if (Platform.OS == 'ios') {
        const DownloadDir = RNFetchBlob.fs.dirs['MainBundleDir']
        const pathToDownload = `${DownloadDir}/${docName}`;
        pathToWrite = pathToDownload
    } else {
        pathToWrite = `${RNFetchBlob.fs.dirs.DownloadDir}/${docName}`;
    }
    let split = data.split('base64,')
    var mimeType = 'application/xlsx';
    RNFetchBlob.fs
        .writeFile(pathToWrite, split[1], 'base64')
        .then(() => {
            // alert(`${docName} Downloaded Successfully`)
            RNFetchBlob.android.addCompleteDownload({
                title: 'ChitNote' + date,
                description: 'Downloading FILE.',
                mime: mimeType,
                path: pathToWrite,
                showNotification: true,
                notification: true
            })
            alert(`Downloaded Successfully ${docName}`)
        })
        .catch((error) => {
            alert(error)
            console.log(error)
        });
}

请帮我解决这个问题。

4

0 回答 0