2

我是反应原生的新手。我收到 blob 响应并尝试使用 rn-fetch-blob 在存储中另存为 pdf。使用我保存到文件存储中的代码文件但无法显示下载通知。

这是我的代码:

var date = new Date();
      var path = RNFetchBlob.fs.dirs.DownloadDir + '/Inspection_' +Math.floor(date.getTime() + date.getSeconds() / 2)+'.pdf';
      RNFetchBlob
      .config({
        // addAndroidDownloads : {
        //   useDownloadManager : true,
        //   title : 'Inspections_'+inspectionId,
        //   description : 'File successfully downloaded',
        //   // path:path,
        //   // mime : 'application/pdf',
        //   // mediaScannable : true,
        //   notification : true,
        // }
      })
      .fetch('POST', url+'customer/create-pdf?id='+inspectionId, {
      Accesstoken: 'Bearer '+this.token
    })
    .then((res) => {
      console.log(res);
      let base64Str = res.data;
      // let pdfLocation = RNFetchBlob.fs.dirs.DownloadDir + '/Inspection_' +this.state.inspectionId+'.pdf';
      RNFetchBlob.fs.writeFile(path, base64Str, 'base64');
      // RNFetchBlob.android.actionViewIntent(path, 'application/pdf')
    })
    .catch((errorMessage, statusCode) => {
      console.log(errorMessage);
      console.log(statusCode);
    })

如何设置配置以显示通知。

4

1 回答 1

0

您可以使用 promise 和 Alert,它们会像这样在下载时触发

RNFS.downloadFile({
            fromUrl: newUrl,
            background: true,
            toFile: `${RNFS.DocumentDirectoryPath}/${fileName}`,
        }).promise.then(async res => {
                this.setState({
                    progress: 100,
                    loading: false,
                    downloaded: true,
                    popupMessage: "File downloaded successfully."
                });
            }).catch(err => {
                this.setState({
                    loading: false
                })
            });

在下载的标志上,您可以显示警报或自定义弹出窗口

于 2021-04-07T14:01:50.883 回答