Запретить пользователю выход из полноэкранного режима в Angular 8

Я использую Angular v8 для моего приложения. Моя проблема в том, что я хочу запретить пользователю выходить из полноэкранного режима. Я посмотрел различные решения по переполнению стека и нашел одно. Ниже мой код, где я пытался реализовать это:

 ngOnInit() {
   this.attachEventListeners();
 }

 attachEventListeners() {
    document.addEventListener('fullscreenchange', this.onFullScreenChange(), false);
    document.addEventListener('webkitfullscreenchange', this.onFullScreenChange(), false);
    document.addEventListener('mozfullscreenchange', this.onFullScreenChange(), false);    
  }

  onFullScreenChange() {
    const fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;

    console.log(fullscreenElement);
    // if in fullscreen mode fullscreenElement won't be null
  }

Но этот код выдает ошибку:

ExamComponent_Host.ngfactory.js? [sm]:1 ERROR TypeError: Cannot read property 'instance' of undefined
    at nodeValue (core.js:27236)
    at Object.eval [as handleEvent] (ExamComponent_Host.ngfactory.js? [sm]:1)
    at handleEvent (core.js:38098)
    at callWithDebugContext (core.js:39716)
    at Object.debugHandleEvent [as handleEvent] (core.js:39352)
    at dispatchEvent (core.js:25818)
    at core.js:37030
    at platform-browser.js:1789
    at ZoneDelegate.invokeTask (zone-evergreen.js:391)
    at Object.onInvokeTask (core.js:34182)

Я не знаю, есть ли что-то, используя @HostListener для угловых есть для обработки этого. Пожалуйста помоги.

1 ответ

Я вижу, что этот вопрос немного устарел, но, вероятно, он будет полезен для кого-то другого - ранее я сталкивался с тем же вопросом и нашел следующее решение с @HostListener:

  @HostListener("document:fullscreenchange", []) 
  fullScreen() {
    if (document.fullscreenElement) {
        console.log(`Entered full-screen mode.`);
    } else {
        console.log('Leaving full-screen mode.');
    }
  }

из этого ответа: /questions/1481009/angular-2-i-polnoekrannyij-api/1481017#1481017.

Используйте hostlistner для этого

например

 import { Component,HostListener } from '@angular/core';

 @HostListener('window:resize', ['$event'])
  onResize(event){

  if (event.target.screen.width < 1170) {
   **something
  } else
  **something
  }

Это будет работать

Другие вопросы по тегам