Добавление внешней библиотеки в мой проект Angular 6 работает только тогда, когда я работаю в localhost - PullRequest
0 голосов
/ 05 июля 2019

Я динамически добавил библиотеку 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 .

chrome console(localhost)

НЕ работает с IP ...

chrome console(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 продолжает работать ... Помогите!

1 Ответ

0 голосов
/ 09 июля 2019

Я наконец-то решил это !!Приложения отправителя Chrome должны поддерживать HTTPS .Итак, я сделал тунель с ngrok и работал.

...