关于ios和Android手机的下载pdf文件功能探讨

news/2024/7/20 20:04:58 标签: ios, android, 智能手机

现象

在工作中遇到了一个需求,在app中需要对一些协议(pdf格式的)进行下载,实现方法创建a标签,设置href的值为下载地址,设置download属性,调用a标签的点击事件进行下载,在Android手机中是调起默认浏览器的下载功能(正常现象,可以实现功能),但是在ios手机中是直接进行文件的有预览.无法下载**,查阅相关资料发现:IOS下载跳转到浏览器的行为是不支持的,**
包括使用babol转成二进制文件流也是一样的,在ios手机中无法下载

//使用axios直接请求pdf完整路径
axios({
   method: 'get',
   url: 'pdf文件.pdf',
   responseType: 'blob'
 }).then((res) => {
    this.downloadFile(res.data, "文件", ".pdf");
  }) 

/**
 * 
 * @param {*} obj 文件流
 * @param {*} name 文件名
 * @param {*} suffix 后缀
 */
downloadFile(obj, name, suffix) {
  const url = window.URL.createObjectURL(new Blob([obj]));
  const link = document.createElement("a");
  link.style.display = "none";
  link.href = url;
  const fileName = parseTime(new Date()) + "-" + name + "." + suffix;
  link.setAttribute("download", fileName);
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

后来修改方案,改成在ios预览,给出提示框进行协议生产地址的复制功能粘贴到浏览器中及逆行保存到手机,在Android手机下载


http://www.niftyadmin.cn/n/5138855.html

相关文章

处理SAP资产折旧AFAB 过账报错:“科目 8019010100 要求一个成本会计分配”

会计在进行资产折旧AFAB时 报错如下所示: 原因分析: 折旧时没有把资产设置得成本中心带到过账凭证的成本中心字段中去。而资产中已经维护了成本中心了。 所以要在资产过账的科目分配中设置一下路径如下: 或者TCODE:ACSET科目设置这…

JetBrains的开源许可将到期,但是碰到麻烦了

2年前,通过开源项目申请了JetBrains的开源许可成功,去年也成功续了一年。今年10月25日,收到了,他们的的邮件。我还是老样子,选择了续订了。昨天,收到了邮件,情况有点麻烦了 Hello,I’m writing…

openpnp - code review - 开机对话框历史记录和贡献者名单

文章目录 openpnp - code review - 开机对话框历史记录和贡献者名单概述笔记D:\my_openpnp\openpnp_dev_2022_0801\src\main\java\org\openpnp\gui\AboutDialog.javaEND openpnp - code review - 开机对话框历史记录和贡献者名单 概述 偶然发现, 自己打包后的openpnp, 开机后…

oauth2.0的使用黑马笔记

一、讲义 讲义 二、代码 地址 三、自定义tokenService package com.hao.auth_demo.config;import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjso…

如何利用速卖通测评自养号技术,快速提升产品的销量、评论和权重?

根据第三方机构《欧洲跨境商务(Cross-Border Commerce Europe)》的消费者评价,速卖通在欧洲跨境电商平台中排名升至第一位,超过了来自美国的亚马逊和eBay等海外电商巨头。这一排名是基于欧洲消费者对电商平台服务的评价&#xff0…

Python爬虫程序中的504错误:原因、常见场景和解决方法

概述 在编写Python爬虫程序时,我们经常会遇到各种错误和异常。其中,504错误是一种常见的网络错误,它表示网关超时。是指客户端与服务器之间的网关通信过程中,服务器在规定的时间内没有返回响应,导致请求超时。此类错误…

JVM虚拟机:如何调整堆空间的大小?

对内存的调优 如上所示,从物理角度来说呢,堆内存就是蓝色的区域,从逻辑角度来说,堆内存包含这个红色的部分,调优肯定是条物理的大小了,我们先来看一下物理内存的大小是多少? 如上所示,我们通过maxMemory获取到java虚拟机试图使用的最大内存量,默认为物理内存的1/4,比我…

构建自己的插件框架:第 2 部分

文章目录 一、基于插件系统的架构二、插件系统生命周期1、注册静态插件2、加载动态插件3、插件初始化三、注册对象由应用程序创建插件对象四、自动适配C对象1、应用程序同插件对象的交互2、由应用程序析构插件对象3、在应用程序关闭时清理插件系统五、插件系统组件1、DynamicLi…