企业微信H5文件下载。

废话不多说,直接上代码。

1.判断是不是企业微信打开的

javascript 复制代码
 const ua = navigator.userAgent.toLowerCase()
if (/micromessenger/.test(ua)) {
 }

2.复制功能

javascript 复制代码
navigator.clipboard.writeText(newsUrl).then(() => {
          this.$message({
            message: '您已复制文件链接,可在浏览器打开链接下载文件。',
            type: 'success'
          })
        })

3.消息弹窗提示

offset Message 距离窗口顶部的偏移量

duration:显示时间, 毫秒。设为 0 则不会自动关闭

javascript 复制代码
 Message({ type: 'success', message: '您已复制文件链接,可在浏览器打开链接下载文件。', offset: 200, duration: 3500 })

4.完整代码

javascript 复制代码
// 文件------查看下载文件
    handlePreview(file) {
      const reqObj = { filePath: file.url, fileName: file.name }
      //   判断是不是企业微信
      const ua = navigator.userAgent.toLowerCase()
      if (/micromessenger/.test(ua)) {
        const newsUrl = 'https://' + window.location.host + '/eal-ec-base/fileApi/download?filePath=' + file.url + '&fileName=' + file.name
        navigator.clipboard.writeText(newsUrl).then(() => {
          this.$message({
            message: '您已复制文件链接,可在浏览器打开链接下载文件。',
            type: 'success'
          })
        })
         window.open(newsUrl, '_blank')
      } else {
        this.downloadInterface(reqObj, file.name)
      }
    },
javascript 复制代码
 // 文件下载
    async downloadInterface(reqObj, fileName) {
      uploadFile(reqObj).then(res => {
        this.loadingShow = false
        const resData = res.data
        // 返回格式是文件流格式
        // 在请求拿到文件流res以后,使用a标签下载
        const pdfData = resData
        const blob = new Blob([pdfData], {
          type: `${this.fileBlobType};charset=utf-8;`
        })
        var a = document.createElement('a')
        document.body.appendChild(a)
        a.style = 'display: none'
        var url = window.URL.createObjectURL(blob)
        a.href = url
        a.setAttribute('download', fileName)
        a.click()
        a.remove()
        window.URL.revokeObjectURL(url)
       
      })
    },
相关推荐
贩卖纯净水.3 分钟前
Chrome调试工具(查看CSS属性)
前端·chrome
栈老师不回家1 小时前
Vue 计算属性和监听器
前端·javascript·vue.js
前端啊龙1 小时前
用vue3封装丶高仿element-plus里面的日期联级选择器,日期选择器
前端·javascript·vue.js
一颗松鼠1 小时前
JavaScript 闭包是什么?简单到看完就理解!
开发语言·前端·javascript·ecmascript
小远yyds1 小时前
前端Web用户 token 持久化
开发语言·前端·javascript·vue.js
阿伟来咯~2 小时前
记录学习react的一些内容
javascript·学习·react.js
吕彬-前端2 小时前
使用vite+react+ts+Ant Design开发后台管理项目(五)
前端·javascript·react.js
学前端的小朱2 小时前
Redux的简介及其在React中的应用
前端·javascript·react.js·redux·store
guai_guai_guai3 小时前
uniapp
前端·javascript·vue.js·uni-app
也无晴也无风雨3 小时前
在JS中, 0 == [0] 吗
开发语言·javascript