Javascript 如何在Chrome iOS上打开Blob URL

Javascript 如何在Chrome iOS上打开Blob URL,javascript,ios,google-chrome,Javascript,Ios,Google Chrome,我想在浏览器窗口中打开Blob对象 除了iOS Chrome(当然还有IE,但我可以解决IE)之外,这段代码在任何地方都有效。窗口不会重定向到url(这是正确的,或者至少与其他浏览器相同)。Chrome iOS是否有已知的解决方法 var blob = new window.Blob(['Hello, world!'], {type: 'text/plain;charset=utf-8'}); window.URL = window.URL || window.webkitURL; var ur

我想在浏览器窗口中打开Blob对象

除了iOS Chrome(当然还有IE,但我可以解决IE)之外,这段代码在任何地方都有效。窗口不会重定向到url(这是正确的,或者至少与其他浏览器相同)。Chrome iOS是否有已知的解决方法

var blob = new window.Blob(['Hello, world!'], {type: 'text/plain;charset=utf-8'});
window.URL = window.URL || window.webkitURL;
var url = window.URL.createObjectURL(blob);
window.location.href = url;

我尝试了
文件阅读器解决了我的问题

var reader = new FileReader();
var out = new Blob([this.response], {type: 'application/pdf'});
reader.onload = function(e){
  window.location.href = reader.result;
}
reader.readAsDataURL(out);
方法已被弃用

有点晚了,但我不得不使用-来做类似的事情,它会生成一个dataUrl。我使用AngularJS$http服务调用API来创建pdf。希望这有所帮助,请参见以下内容:

$http.post('/api/pdf', {id: '123'}, {responseType: 'arraybuffer'})
    .success(function (response) {
        var blob = new Blob([response.data], {type: 'application/pdf'});
        var reader = new FileReader();
        reader.onloadend = function(e) {
             $window.open(reader.result);
        }
        reader.readAsDataURL(blob);
    });

我通过将内容类型从application/json更改为application/octet-stream来修复它。我的xlsx文件作为json下载


@PostMapping(value=“/export”,products=MediaType.APPLICATION\u OCTET\u STREAM\u value)

这些解决方案在Safari上都不适合我。我必须在页面上创建一个链接

const downloadBlob=(文件名,blob)=>{
const link=document.createElement('a');
link.href=URL.createObjectURL(blob);
link.target=''u blank';
link.download=文件名;
document.body.appendChild(链接);
link.click();
}
const blob=new blob([data],{type:'video/mp4'});
下载blob('myfile.mp4',blob)

出于某种原因,这适用于我在Chrome IOS中的PDF,但不适用于epub,其中epub的应用程序类型为:blob=new blob([oReq.response],{type:'application/epub+zip'});该代码适用于Safari中的两种类型,但不适用于chrome(哦,我的……我生活的这一部分叫做快乐。我需要在Chrome IOS中管理一个存档文件,可能吗?我试图创建一个类似blob的新blob([………],{type:'application/zip'));但代码不起作用。是否可以在IOS的新窗口中打开文件?@daerin您能帮我调整它以适应我的代码吗?嗨,Keano您的解决方案在Firefox上运行良好,但当我尝试使用Chrome时,它似乎不起作用。它只显示url,但pdf没有加载。您能指导我吗?提前谢谢。您好,我在Firefox和Chrome上使用FileReader.readAsDataURL和PDF流很好。几天或几周后,用户报告说它不再适用于Chrome或Vivaldi(同一引擎),但仍然适用于Firefox。可能是Chrome的回归?