window.chrome.cast недоступен в браузере Android Chrome - PullRequest
0 голосов
/ 12 июня 2019

Фон

Чтобы инициализировать сеанс Chromecast с моего видеопроигрывателя, мне нужно вызвать метод на window.chrome.cast.Это работает правильно на настольном Chrome, однако объект Android Chrome window.chrome не содержит обязательного поля cast.

Я использую Google Pixel под управлением Android 9. Ваш совет приветствуется!

код

Перед инициализацией сеанса Chromecast я добавляю в окно прослушиватель, который определяет, доступен ли Google Chromecast API:

window.__onGCastApiAvailable = (isAvailable) => {
    if (isAvailable) {
        this.initializeCastApi();
    }
};

В Android Chrome, isAvailable не становится истинным, и поэтому API никогда не инициализируется.Если я удаляю условное выражение и просто запускаю initializeCastApi(), следующая строка в этом методе запускается первой:

const sessionRequest = new chrome.cast.SessionRequest(/* App ID */);

В Android это вызывает следующую ошибку, поскольку window.chrome.cast не существует:

Uncaught TypeError: Cannot read property 'SessionRequest' of undefined

Ожидания против реальности

Я ожидаю, что поведение Chromecast на Android Chrome будет работать так же, как на настольном Chrome, поскольку Chromecast API доступен на обоих.

Однако объекты window.chrome не совпадают, и, поскольку объект Android не включает cast, я не могу запустить Chromecast в этом браузере.

Снимки экрана

Объект window.chrome на настольном Chrome (обратите внимание на наличие cast): enter image description here

И объект window.chrome на Android Chrome:enter image description here

...