ThirdMessage.js 1.6 KB
import Emiter from 'Emiter';
import Loger from 'Loger';
import MessengerMoudle from './MessengerMoudle';

let loger = Loger.getLoger('ThirdMessage');
class ThirdMessage extends Emiter{
  constructor(){
    super();
    // 初始化消息通道
    try{
      //this.messenger = new Messenger(ThirdMessage.IFRAME_MESSAGE_ID, ThirdMessage.PARENT_MESAGE_ID);
      this.messenger = new MessengerMoudle(ThirdMessage.IFRAME_MESSAGE_ID, ThirdMessage.PARENT_MESAGE_ID);
      this.messenger.addTarget(window.parent, ThirdMessage.PARENT);
      this.messenger.listen(this._reciveParentMessage.bind(this))
      loger.log('ThirdMessage');
    }catch (err){
     console.warn('第三方消息通道创建失败');
    }

  }

  //发送消息给父级页面
  sendMessageToParent(_msg){
    if(!_msg){
      loger.warn('发送的消息内容无效->',_msg);
      return;
    }
    if(this.messenger){
      loger.log('发送消息给父级页面->',_msg);
      this.messenger.send(_msg);
    }
  }
  //收到父级页面的消息
  _reciveParentMessage(_msg){
    loger.log('收到父级页面的的消息->', _msg);
    if(!_msg){
      loger.warn('收到父级页面的的消息->内容无效->',_msg);
      return;
    }
    this._emit(ThirdMessage.RECIVE_MESSAGE,_msg);
  }

}
ThirdMessage.prototype.RECIVE_MESSAGE=ThirdMessage.RECIVE_MESSAGE='recive_message';
ThirdMessage.prototype.IFRAME_MESSAGE_ID=ThirdMessage.IFRAME_MESSAGE_ID='xuedianyunIframe';
ThirdMessage.prototype.PARENT_MESAGE_ID=ThirdMessage.PARENT_MESAGE_ID='ParentMessengerChannel';
ThirdMessage.prototype.PARENT=ThirdMessage.PARENT='parent';
export default ThirdMessage;