Подтвердить что ты не робот

Как открыть URL-адрес Blob в Chrome iOS

Я хочу открыть объект 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;

Я пробовал <a href="{blobUrl}> вместо window.location.href, но он тоже не работает.

4b9b3361

Ответ 1

FileReader решил мою проблему.

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);

Ответ 2

Метод FileReader.readAsBinaryString устарел.

Бит поздно, но мне пришлось что-то подобное использовать с помощью FileReader.readAsDataURL - который создает 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);
    });