需求背景

有一些文件比如 pdf,用户需要下载之后进行打印,或者分享给其他好友

uni-app用到的api

  • uni.downloadFile https://uniapp.dcloud.io/api/request/network-file?id=downloadfile
  • uni.saveFile https://uniapp.dcloud.io/api/file/file?id=savefile
  • uni.openDocument https://uniapp.dcloud.io/api/file/file?id=opendocument

其实把文件保存到本地的意义不是很大,因为手机跟pc端不一样,用户可以选择磁盘,选择文件去保存,手机上保存用户很难去找到这个文件,尤其 ios ,所以要实现类似需求,我们只能换一个方式去实现,我们可以从后台拿到文件,然后用户去分享给好友,然后再从pc端去下载,或者微信里面用其他软件打开之类的。

uni.downloadFile({
  url: `${fileDownload}?access_token=${token}&fileId=${res.data.file_id}`, // 文件下载地址
  success: response => {
    if (response.statusCode === 200) {
      uni.saveFile({
        tempFilePath: response.tempFilePath,
        success: (resData) => {
          uni.openDocument({
            filePath: resData.savedFilePath,
            fileType: 'pdf', // 指定文件的格式
            showMenu: true, // 允许出现分享功能
            success: r => {
              console.log(r)
            },
            fail: openError => {
              console.log('打开失败: ', openError)
            }
          })
        },
        fail: error => {
          console.log('error: ', error)
        }
      })
    }
  }
})



更多推荐

uni-app 小程序文件下载并分享