Мы интегрируем стороннее приложение в приложение Angular 7 через IFRAME, которое требует динамической загрузки стороннего приложения, через GET
, а не через <IFRAME src=
, чтобы добавить дополнительные заголовки:
ngOnInit() {
const url = `3-rd party app url address here`;
this.load(url)
.subscribe(blob => {
this.iframe.nativeElement.src = blob;
});
}
load(url: string): Observable<any> {
return new Observable((observer: Subscriber<any>) => {
let objectUrl: string = null;
this.http
.get(url, {headers: /* custom headers here */})
.subscribe(m => {
objectUrl = URL.createObjectURL(m);
observer.next(objectUrl);
});
return () => {
if (objectUrl) {
URL.revokeObjectURL(objectUrl);
objectUrl = null;
}
};
});
}
Вот шаблон, на который ссылается this.iframe
:
<iframe #iframe width="100%" height="100%" frameborder="0"></iframe>
Что происходит - приложение стороннего производителя успешно получено, но затем отображается в виде точки.
Я считаю, что это потому, что мы динамически загружаем не только HTML-страницу, но и целое приложение со своими собственными script
тегами.
Так чего мне не хватает?Что нужно изменить / добавить, чтобы правильно отображалась такая динамическая страница IFRAME?