wx.downloadFile()踩坑

2023/3/31
  1. 关于预览一直请求: 配置合法域名

  2. 关于下载的文档打不开(或者已损坏):检查url是否有效。

  3. 关于真机和开发时正常,预览时一直加载问题:查看请求的地址和配置的域名,它们协议是否一直(自己踩坑:配置的https,请求的是http),可以尝试关闭合法域名校验进行调试。

  4. 对于测试,需要清除小程序缓存:(ios删除小程序,重新登录可以清除缓存。)

  5. 关于预览的文件需要分享:wx.openDocument里设置showMenu: true

  6. 关于自定义文件名:设置wx.downloadFile的filePath

filePath:wx.env.USER_DATA_PATH+'/'+文件.后缀名
//例如:12345.doc
//需要注意:当设置了filePath后返回的是字段是filePath(没设置的时候为tempFilePath)


/**完整代码 */
previewFile(ev) {
    const flieArr = ev.currentTarget.dataset.filename.split('.')
    const fileType = flieArr[flieArr.length - 1]
    wx.showLoading({
      title: '加载中...',
      mask: true
    }),
    wx.downloadFile({
      url: ev.currentTarget.dataset.url,
      filePath:wx.env.USER_DATA_PATH+'/'+ev.currentTarget.dataset.filename,
      success: function (res) {
        const filePath = res.filePath
        wx.openDocument({
          filePath,
          fileType,
          showMenu: true,
          complete:function(){
            wx.hideLoading()
          }
        })
      },
    })
  },