Newer
Older
reroad-test / 2020-ryusei / aframe-master / src / core / scene / postMessage.js
@ryusei ryusei on 22 Oct 2020 741 bytes パノラマ表示
var bind = require('../../utils/bind');
var isIframed = require('../../utils/').isIframed;

/**
 * Provides a post message API for scenes contained
 * in an iframe.
 */
module.exports = function initPostMessageAPI (scene) {
  // Handles fullscreen behavior when inside an iframe.
  if (!isIframed()) { return; }
  // postMessage API handler
  window.addEventListener('message', bind(postMessageAPIHandler, scene));
};

function postMessageAPIHandler (event) {
  var scene = this;
  if (!event.data) { return; }

  switch (event.data.type) {
    case 'vr': {
      switch (event.data.data) {
        case 'enter':
          scene.enterVR();
          break;
        case 'exit':
          scene.exitVR();
          break;
      }
    }
  }
}