admin管理员组

文章数量:1572707

微信开放文档提供了 API 下载文件  wx.downloadFile  wx.saveFile

downloadFile 其实是将文件下载下来,放到了一个临时空间,success 返回文件的本地临时路径

但是这个临时路径其实是微信沙盒的路径,并不是手机本地的路径。

saveFile 开发文档写的是保存文件到本地,我以为是保存到手机,其实是我想多了,打印了一下地址。

 downloadFile 和 saveFile 调用成功后返回的地址都是以  wxfile:// 开头的,感觉这个是微信自己的内部存储空间。(但其实android是可以查询到的:内部存储/Android/data/com.tencent.mm/MicroMsg/wxanewfiles/***/文件名 ,中间那个***是个长的字符串,不知道什么规则生成的;ios是无法查询到具体的文件) 

回头看看,需求是下载Excel文件,到本地,怎么实现呢

查询了好多社区文档,看到大家都遇到了这个问题,各种骚方案,如下:

https://developers.weixin.qq/community/develop/doc/000aa09ca30a9031462990b3b51000

我结合需求想了一个中间方案:(其实下载文件也就是想要发送给朋友)

// 将下载文件的地址粘贴到剪贴板,提示用户去手动下载
 Taro.setClipboardData({
        data: url,
        success: function (res) {
          Taro.showToast({
            title: '下载地址已粘贴到剪贴板,请前往浏览器下载!',
            icon: 'none',
            duration: 2000,
          });
        }
      })
//通过wx.openDocument 打开文档,openDocument 提供了一个属性showMenu 显示右上角的菜单
wx.downloadFile({
          url: url,
          success (res) {
            if (res.statusCode === 200) {
              const filePath = res.tempFilePath;
              wx.openDocument({
                filePath: filePath,
                showMenu: true,
                success: function (res) {
                  console.log(res, '打开文档成功');
                }
              });
            }
          }
        })

 最后发现右上角的菜单有分享朋友的功能

              

 用户可以通过分享发送给朋友,也可以通过剪切板的内容到浏览器中手动下载文件。

 

 

 

 

 

 

 

本文标签: 程序下载微信小Excel