显示通知成功下载文件并使用rn-fetch-blob打开文件

时间:2019-02-11 11:57:28

标签: react-native notifications blob react-native-fetch-blob

我是本机反应的新手。我收到了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);
    })

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

1 个答案:

答案 0 :(得分: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
                })
            });

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