Bezdepbonusu7Программирование: статьи и ответы

Вопрос

IOS чувствительна к hapi.js answer.file() и директиве статического каталога

Автор вопроса: MooshwaОтветов: 1

Мне нужна помощь с инертным модулем hapi.js. Я пытаюсь отобразить встроенное видео HTML5 с помощью hapi.js. Я использую обработчик для передачи видео с помощью reply.file('filename.mp4').type('video/mp4'). Это отлично работает в Google Chrome на OSX, однако не работает на iPad или iPhone на iOS.

Если вместо этого я подаю тот же файл, используя директиву каталога HAPI. т. е. я запрашиваю файл более напрямую.

server.register(Inert, function () {});

server.route({
    path: "/static/{path*}",
    method: "GET",
    handler: {
        directory: {
            path: "./static",
            listing: false,
            index: false
        }
    }
});

затем видео отлично встраивается как в Chrome, так и в iOS.

Кажется, есть разница между использованием reply.file() и прямой передачей файла, но только на iOS. Я сравнил заголовки HTTP в обоих случаях, и все выглядит одинаково, поэтому я в тупике.

ioshapijs

Ответы

Ответ 1 · Mooshwa

В порядке. Я сделал еще немного отладки и понял, что это не имеет ничего общего с HAPI. На самом деле это баг IOS, ссылка на который здесь:

HTML5-видео/аудиоплеер включен мобильный Safari (iOS 7 и iOS 10) исключает файлы cookie

Причина, по которой мой статический обработчик работал, заключалась в том, что он не проверял файл cookie, который не отправлялся в результате этой ошибки IOS в медиаплеере.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы