收藏
回答

已经配置业务域名公众号内打开的网页下载pdf文件为什么提示《可在浏览器打开此网页来下载文件。》?

var a = document.createElement('a');
a.style.opacity = '0';
a.href = url;
a.download = e.fileName;
event.preventDefault()
document.body.appendChild(a);
a.click();
// 延迟移除元素(避免平板崩溃)
setTimeout(() => {
  document.body.removeChild(a);
}, 1000);

以上是下载代码

之前还提示即将离开微信在浏览器打开,现在直接提示《可在浏览器打开此网页来下载文件》了

这是为什么呢,怎么修改呢?


已解决

Content-Disposition和Content-Type配置的问题

Content-Type: binary/octet-stream Content-Disposition: attachment;

存储的时候把这俩配置改成这种的就会出现第二种提示,只能存储的时候改,现成的文件可能不生效,但是苹果手机还是可以直接看的这个没办法

正确的能在安卓微信内置浏览器下载的应该是

pdf文件 Content-Disposition这个字段不要 Content-Type写死为application/pdf


最后一次编辑于  01-20
回答关注问题邀请回答
收藏

2 个回答

  • 星河璀璨
    星河璀璨
    01-15

    之前是这样的(这个图是我从别地方找的)

    现在变成这样了

    01-15
    有用
    回复 6
    • 动物园长
      动物园长
      01-16
      求问,这两种的触发条件分别是什么呢?我当前显示的是第一种,但是我想要的效果是第二种
      01-16
      回复
    • 星河璀璨
      星河璀璨
      01-19回复动物园长
      不知道啊,我现在是想要第一种,但是莫名其妙变成第二种了,之前公众号配置过业务域名算吗,你那要是还能展示第一种的话,那感觉好像还是我们什么配置或者代码有问题啊,我还以为都是第二种了呢现在,你那边下载的代码也是a标签的吗?
      01-19
      回复
    • 星河璀璨
      星河璀璨
      01-19回复动物园长
      如果你们也配置了的话可以试试删除业务域名看看会不会出现这种
      01-19
      回复
    • 星河璀璨
      星河璀璨
      01-20回复动物园长
      我找到原因了,第二种是文件的Content-Disposition和Content-Type配置的问题
      Content-Type: binary/octet-stream
      Content-Disposition: attachment;
      存储的时候把这俩配置改成这种的就会出现第二种提示了,只能存储的时候改,现成的文件可能不生效,但是苹果手机还是可以直接看的这个没办法
      01-20
      回复
    • 动物园长
      动物园长
      01-22
      感谢,我希望展示的是“可在浏览器打开此网页来下载文件”,当前存储的时候改成了Content-Type: video/mp4,但是居然有部分安卓不生效,不知道你没有遇到过
      01-22
      回复
    查看更多(1)
  • hello world
    hello world
    01-14

    微信内不能下载

    01-14
    有用
    回复 1
    • 星河璀璨
      星河璀璨
      发表于移动端
      01-15
      是新的改动吗 之前还是离开微信的弹窗呢 现在不提示了,但是ios还是可以正常查看的
      01-15
      回复
登录 后发表内容