Я динамически добавил библиотеку Chrome Api (из https://www.gstatic.com/cv/js/sender/v1/cast_sender.js) в мой проект и работает, как и ожидалось, когда я запускаю с использованием localhost: 4200 . Однако он не работает, когда Я использую свой IP: 192.168.0.144: 4200 . В этом случае приложение запускается, но библиотека Chrome не работает.
Это мой код:
cast: any;
constructor() {
}
ngOnInit(): void {
console.log('ngOnInit()');
const script = window['document'].createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1');
window['document'].body.appendChild(script);
window['__onGCastApiAvailable'] = (isAvailable) => {
if (isAvailable) {
this.cast = window['chrome'].cast;
const sessionRequest = new this.cast.SessionRequest('<MY_APP_ID>');
const apiConfig = new this.cast.ApiConfig(sessionRequest,
s => { },
status => { if (status === this.cast.ReceiverAvailability.AVAILABLE) { } }
);
const x = this.cast.initialize(apiConfig, this.onInitSuccess, this.onInitError);
} else {
console.log('CAST API is not available !!');
}
};
}
Работает с localhost .
НЕ работает с IP ...
Я уже пытался добавить библиотеку в index.html вместо динамически в компоненте и получил тот же результат.
Я думал, может быть проблема с CORS. Затем я попытался настроить этот прокси, но безуспешно:
{
"/v1": {
"target": "https://www.gstatic.com/cv/js/sender/",
"secure": false,
"changeOrigin": true
}
}
И изменив эту строку:
script.setAttribute('src', '/v1/cast_sender.js?loadCastFramework=1');
Но только localhost продолжает работать ... Помогите!