微信小程序下载Excel到本地

微信开放文档提供了 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.com/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, '打开文档成功');
                }
              });
            }
          }
        })

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

              

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

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值