微信H5如何打开在线或者下载的文档(如pdf、excel、word、ppt等等)?

最近在做一个项目,里面有个需求是这样的:用户可以在文档列表处选择要看的文档,点击的时候,后台会传一个下载的id,我就把这个下载的id跟下载接口拼在一起,形成一个文档下载链接。

IOS手机选择后,有些就会直接打开来看,有些就会下载才显示。而安卓手机无一例外都是会提示一个,下载后通过别的方式打开,【一不小心点到安全下载就会下载一个QQ浏览器,坑啊】,如下图所示:
图片描述

能否变成是一点击选择后,可以下载,但是,能不能直接就打开?或者有没有更好的办法?

PS:目前我用的是iframe标签来做的

阅读 19k
3 个回答

ios支持常用的文件预览,但要返回正常的文件信息,查看返回的请求头信息
android不支持常用的文件预览
pdf有相关的H5插件支持在线预览,可以将其他文件转换为pdf

查了许久,还是自问自答了:

安卓不支持常用文件预览,一旦检测到文件流就会要求下载。

解决办法:

  1. 要么就按照常规的来,下载下来,用浏览器阅读器插件打开(就是不解决,消去部分体验感);
  2. 要么就是在服务端将文件转成pdf形式,再转成base64传输出去,再前端使用pdf.js,把base64转成pdf展示出去,不过这样有个不好的地方,就是假如数据库存储的文件是excel的,结果到用户手中,一直都是pdf的了,下载下来后,通过聊天界面转发出去的也是pdf(体验感强于1,但是文件格式不对)。
新手上路,请多包涵

我目前需要在ios微信中下载woed excel 之类的文档 安卓可以下载 但是ios不行 怎么解决啊求大佬帮忙

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题