需求:h5 页面 下载pdf,doc,docx,xlsx,xls 文件的功能
在安卓手机和 ios上的uc浏览器是可以正常的 下载或者预览的
但是在ios的Safair 下载时会被自动添加html尾缀,导致下载后是乱码的 不能使用的文件

前端尝试了不用的下载方式的代码


// 下载文件download (url) {var $a = document.createElement('a');$a.setAttribute("href", url);$a.setAttribute("download", "");var evObj = document.createEvent('MouseEvents');evObj.initMouseEvent('click', true, true, document.defaultView, 0, 0, 0, 0, 0, false, false, false, false, 0, null);$a.dispatchEvent(evObj);// var src = url// var iframe = document.createElement('iframe'); iframe.style.display = 'none';// iframe.src = "javascript: '<script>location.href=\"" + src + "\"</script>'";// document.getElementsByTagName('body')[0].appendChild(iframe);//window.open(url, '_blank')},

仍然没有解决这个棘手的问题

后来后端介入并解决了


思路是前端判断是否在ios的Safair 的浏览器上

//判断是否Safari浏览器
let is_Safari = false
var ua = navigator.userAgent.toLowerCase();
//判断是不是在iPhone的Safair浏览器打开的本页面
if (ua.indexOf('applewebkit') > -1 && ua.indexOf('mobile') > -1 && ua.indexOf('safari') > -1 &&ua.indexOf('linux') === -1 && ua.indexOf('android') === -1 && ua.indexOf('chrome') === -1 &&ua.indexOf('ios') === -1 && ua.indexOf('browser') === -1) {// document.write("【是 Safari】");is_Safari = true
}

然后在调用后端指定的接口
后端的处理思路大致是 响应了 有.html尾缀的接口
成功的下载或预览了各类文件

ios不能使用接口播放视频的问题
在video 的 src 是用 /file/${id} 这样的方式访问,在安卓 手机播放没问题,在ios手机播放不出来

经过后端的处理,思路大致是,不分段传输,解决了在ios视频播放的问题

h5 ios Safair下载文件自动添加.html导致文件乱码问题,ios不能使用接口播放视频的问题相关推荐

  1. sublime 设置新建文件自动添加author(作者)等文件头信息

    很多时候, sublime 自带自动添加文件头信息, 但是并不是我们想要比如下面这样的: 新建一个python文件 自动添加的author 信息 == 上面并不是我想要的, 我想要下面这样的效果: = ...

  2. mac压缩文件自动添加.DS_Store

    mac系统压缩文件自动添加缓存文件 今天给生产环境发了一个增量更新包,由于原始的jar包太大,为了方便传输,便将需要更新的文件打包成zip格式,然后在生产上把更新的文件打包更新到jar中.结果客户按照 ...

  3. python建立py文件夹过程_Pycharm创建python文件自动添加日期作者等信息(步骤详解)...

    百度AI接口的调用方法不必多介绍.官网地址 人流量统计新建AipBodyAnalysisfrom aip import AipBodyAnalysis""" 你的 APP ...

  4. C# 在类文件自动添加文件注释的方法

    对于vs2013来讲, 步骤: 1.VS2013 中找到(安装盘符以C盘为例)C:\ProgramFiles(x86)\Microsoft VisualStudio12.0\Common7\IDE\I ...

  5. 如何给word文件自动添加目录?

    大学生朋友.使用word文档的朋友,当你们写完了一份word文件之后发现还要添加一个目录,自己手动添加目录是不是很麻烦,而且,当我们改变了内容之后,文件的页码也会发生改变,那么目录也就需要跟着一起更改 ...

  6. 为js和css文件自动添加版本号

    参考:http://flyash.itcao.com/post_914.html and    http://www.particletree.com/notebook/automatically-v ...

  7. 编写acad.rx文件自动加载arx文件

    加载.arx文件,最方便的方法便是,在acad.rx 文件中填写.arx文件的路径,这样点击按F5调试ObjectArx程序时,就会直接启动AutoCAD2002并自动加载.arx文件,再在CAD的命 ...

  8. php上传文件自动删除,jsp-解决文件上传后重启Tomcat时文件自动删除问题

    吼吼,我遇到的问题是这样的...... 我写了一个图片上传的方法,上传时,判断没有这个目录就自动建立一个.然后开始上传图片,能成功,能在服务器找到文件夹和相应的文件.但是,重启项目,或者清理缓存之后, ...

  9. idea新增文件自动添加到版本控制

    在idea中,使用svn提交时可能会出现 预期文件没出现在提交目录里. 是因为没有把新建文件添加到版本控制里. 解决办法:右键选择文件→subversion→add to vcs. 自动把新文件添加到 ...

最新文章

  1. appium java类库下载,appium 简明教程 (4)——appium client 的安装
  2. 解决微信小程序配置https不成功问题
  3. Email 之父去世:他让邮件有了 @
  4. 使用jdbc操作mysql数据库_java使用JDBC操作MYSQL数据库
  5. Windows消息机制详解
  6. 给后辈的一点建议,面试建议
  7. C++求复数的角度_11.初中数学:方程5x2m=4x的解,在2与10之间,怎么求m的取值范围?...
  8. kubernetes精华问答 | Swarm和K8S的共同点有哪些?
  9. 20175305张天钰《java程序设计》第七周学习总结
  10. Android 图片压缩器
  11. OpenLDAP 2.4.44 安装 + phpLDAPadmin 安装
  12. 关于数组指针的一道面试题
  13. 【HDOJ】1504 Disk Tree
  14. qt在window实现二维码识别
  15. Mac 本地起一个html 服务
  16. 抑郁症自测量表测试软件,抑郁自评:医用抑郁自测量表,快来测一测你的抑郁指数是多少...
  17. Android 实现电话拨号界面带按键声demo
  18. 什么是firmware?
  19. Foobar 2000 EIKO 增强版 取消“最小化到托盘”设置
  20. android 网络图片工具类,分享一个Android图片模糊的工具类

热门文章

  1. 20-50人,拓展基地_拓展训练_拓展基地_拓展公司推荐_嗨牛团建
  2. Parallels Desktop启动后黑屏无法进入Windows系统
  3. Android 图片倒影
  4. 你知道吗?计算机界也有诺贝尔奖!
  5. 【运营小卖部】如何玩转社群?社群运营教程
  6. 谭谭牛顿的牛眼之人眼是红外线成像仪谭
  7. 为了不被裁之NVMe-MI oob
  8. Android通知栏—Notification(一)
  9. U盘文件恢复,3个方法恢复教程
  10. tair用ldb做分布式存储