uniapp——App 监听下载文件状态,打开文件(三)

5+ 实现下载文件并打开

这里演示,导出Excel 表格

文章目录

    • 5+ 实现下载文件并打开
      • DEMO
      • 监听下载进度效果图
      • 为什么 totalSize 一直为0?

相关Api:
downloader


DEMO

提示:

  • 请求方式支持:GET、POST;POST 方式需要设置Content-Type
  • 暂停下载任务: dtask.pause();
  • 取消下载任务:dtask.abort();
  • 监听下载文件:实时状态,根据个人所需可以在页面上添加进度条等UI效果;

h5PlusDownloadFile() {let header = {token: getToken(),'Content-Type': 'application/json' // 设置 POST 请求提交的数据类型为JSON字符串}// 下载任务的参数let options = {method: 'POST',filename: `_doc/test_${new Date().getTime()}.xlsx` // 支持以"_downloads/"、"_doc/"、"_documents/"开头}// 创建下载任务let url = 'https://xxx/export';var dtask =	plus.downloader.createDownload(url, options, (d, status) => {console.log('下载完成', d, status);if(status == 200){ console.log("Download success: " + d.filename);uni.showToast({title: '下载成功'})// 打开指定的文件plus.runtime.openFile(options.filename);} else {console.log("Download failed: " + status); uni.showToast({title: '下载失败',icon: 'error'})plus.downloader.clear(); // 清除下载任务}  })// 设置下载请求头数据Object.keys(header).forEach((key) => {dtask.setRequestHeader(key, header[key]);})// 监听下载任务状态,根据个人所需 实现进度条等dtask.addEventListener("statechanged", this.onStateChanged, false);// 开始下载dtask.start();
},
onStateChanged(download, status) {// Download对象管理一个下载任务console.log('监听下载状态--->文件的总大小/已完成下载文件的大小:', download.totalSize, download.downloadedSize);if(download.state == 4 && status == 200){// 下载完成 console.log("onStateChanged Download success: " + download.getFileName());  }  
},

监听下载进度效果图

  • 截取后面部分效果图
    在这里插入图片描述

为什么 totalSize 一直为0?

  • 下载任务开始传输数据时更新,在此之前其值为0。 此值是从HTTP协议的Content-Length中获取,如果服务器未返回Content-Length数据则此值始终为0;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4706.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis的多对一、一对多的用法

目录 1、使用VO聚合对象(可以解决这两种情况) 多对一: 一对多: 2、非聚合的多对一做法: 3、非聚合的一对多做法: 1、使用VO聚合对象(可以解决这两种情况) 当我需要多对一、一对…

Vscode:问题解决办法 及 Tips 总结

Visual Studio Code(简称VSCode)是一个功能强大的开源代码编辑器,广泛用于各种编程语言和开发场景,本博客主要记录在使用 VSCode 进行verilog开发时遇到的问题及解决办法,使用过程中的技巧 文章目录 扩展安装失败调试配…

MySQL 窗口函数

MySQL 窗口函数 1,窗口函数 1.1,什么是窗口函数1.2,基本语法 2,函数详解 2.1,聚合函数2.2,排序函数2.3,偏移函数2.4,值函数 3,进阶用法 1,窗口函数 1.1&am…

基于vite+vue3+mapbox-gl从零搭建一个项目

下面是基于 Vite、Vue 3 和 Mapbox GL 从零搭建一个项目的完整步骤,包括环境搭建、依赖安装、配置和代码示例。 文章目录 1. 初始化项目2. 安装 mapbox-gl 依赖3. 配置 Mapbox Access Token4. 实现地图组件5. 在 App.vue 中使用地图组件6. 启动开发服务器7. 添加自定…

Data Filtering Network 论文阅读和理解

目录 一、TL;DR 二、Introduction 2.1 apple的结论 2.2 业界做法: 2.3 我们的做法(Apple) 2.4 如何获取好的DFN 三、未完待续(这周出去购物了,下周继续补充) 一、TL;DR 核心…

ingress-nginx代理tcp使其能外部访问mysql

一、helm部署mysql主从复制 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo updatehelm pull bitnami/mysql 解压后编辑values.yaml文件,修改如下(storageclass已设置默认类) 117 ## param architecture MySQL archit…

浅谈安科瑞电能质量监测和治理产品在分布式光伏电站的应用-安科瑞 蒋静

1 概述 随着对可再生能源需求的增加,分布式光伏电站的建设和发展迅速。然而,分布式光伏电站的运行过程中面临着一系列问题,比如导致企业关口计量点功率因数过低、谐波污染等。这些问题不仅影响光伏电站自身的运行效率,还会对企业…

CSS实现实现票据效果 mask与切图方式

一、“切图”的局限性 传统的“切图”简单暴力,但往往缺少适应性。 适应性一般有两种,一是尺寸自适应,二是颜色可以自定义。 举个例子,有这样一个优惠券样式 关于这类样式实现技巧,之前在这篇文章中有详细介绍: CSS 实现优惠券的技巧 不过这里略微不一样的地方是,两个…

ToDesk云电脑、顺网云、网易云、易腾云、极云普惠云横测对比:探寻电竞最佳拍档

一、云电脑:电竞新宠崛起 在电竞游戏不断发展的今天,硬件性能成为了决定游戏体验的关键因素。为了追求极致的游戏画面与流畅度,玩家们往往需要投入大量资金购置高性能电脑。然而,云电脑技术的出现,为玩家们提供了一种…

Kotlin Bytedeco OpenCV 图像图像50 仿射变换 图像缩放

Kotlin Bytedeco OpenCV 图像图像50 仿射变换 图像缩放 1 添加依赖2 测试代码3 测试结果 在OpenCV中,仿射变换(Affine Transformation)和透视变换(Perspective Transformation)是两种常用的图像几何变换方法。 变换方…

回归预测 | MATLAB基于TCN-BiGRU时间卷积神经网络结合双向门控循环单元多输入单输出回归预测

效果一览 基本介绍 回归预测 | MATLAB基于TCN-BiGRU时间卷积神经网络结合双向门控循环单元多输入单输出回归预测 一、引言 1.1、研究背景及意义 在当今数据驱动的时代,时间序列预测已成为金融、气象、工业控制等多个领域的关键技术。随着人工智能和机器学习技术的…

TMC2208替代A4988

前言 TMC2208 是一款先进的 1 轴步进驱动器,支持 stealthChop ™和 256 微步。本应用说明介绍了如何设置 TMC2208 以替代 A4988(传统模式)。 引脚比较 与其他电机驱动器相比,TMC2208 具有附加功能:256 微步。 自动…

多层 RNN原理以及实现

数学原理 多层 RNN 的核心思想是堆叠多个 RNN 层,每一层的输出作为下一层的输入,从而逐层提取更高层次的抽象特征。 1. 单层 RNN 的数学表示 首先,单层 RNN 的计算过程如下。对于一个时间步 t t t,单层 RNN 的隐藏状态 h t h_t…

数据结构——AVL树的实现

Hello,大家好,这一篇博客我们来讲解一下数据结构中的AVL树这一部分的内容,AVL树属于是数据结构的一部分,顾名思义,AVL树是一棵特殊的搜索二叉树,我们接下来要讲的这篇博客是建立在了解搜索二叉树这个知识点…

【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析

【简介】FortiAnalyzer 是 Fortinet Security Fabric 安全架构的基础,提供集中日志记录和分析,以及端到端可见性。因此,分析师可以更有效地管理安全状态,将安全流程自动化,并快速响应威胁。具有分析和自动化功能的集成…

【KOA框架】koa框架基础及swagger接口文档搭建

koa是express的一层封装,语法比express更加简洁。所以有必要了解下koa的相关开发方法。 代码实现 package.json {"name": "koapp","version": "1.0.0","main": "index.js","scripts": {…

[深度学习]机器学习和深度学习

机器学习和深度学习 文章目录 机器学习和深度学习人工智能与机器学习和深度学习的关系侠义的机器学习深度学习的概念常见的神经网络的输入形式想要的输出(任务类别)深度学习的流程 线性函数与多层神经元 人工智能与机器学习和深度学习的关系 所谓人工智能就是,让计算…

【QT】已解决:Qt4.11.0无法使用MSVC编译器问题

目录 一、背景 1.本机环境 2.问题描述 3.问题解决前后对比图 二、详细操作 1.下载项目二所需qt环境 2.解决思路 3.安装VS2017 4.安装MSVC调试器 5.打开qtCreator查看编译器 5.编译运行项目二 三、参考 一、背景 1.本机环境 windows11 qtCreator4.11.0 minGW 64位…

C++ 模拟真人鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

从零开始:Spring Boot核心概念与架构解析

引言 在当今的Java开发领域,Spring Boot已经成为构建企业级应用的首选框架之一。它以其简洁、高效、易于上手的特点,极大地简化了Spring应用的开发过程。本文将从Spring Boot的核心概念入手,深入解析其架构设计和运行原理,帮助读…