Навигация по страницам в ApiRTC & Ionic 3 - PullRequest
0 голосов
/ 17 октября 2018

Я работаю над приложением ApiRTC & Ionic 3 и сталкиваюсь со следующей проблемой.Я сослался на пример , который представляет собой одностраничное приложение.Но я хочу перемещаться между страницами при получении различных сигналов.Например, я на странице сообщений, и скажем, я получил входящий звонок.В это время я хочу перейти на chatReceivePage.Мои коды реализованы следующим образом.

Страница сообщений

declare var apiRTC;
export class MessagesPage {
  user_data = {};
  conversations = [];

  constructor(
        public navCtrl: NavController, 
        public navParams: NavParams, 
        public modalCtrl: ModalController,
        public events: Events,
        public apirtcProvider: ApiRtcProvider) {
      events.subscribe('getUserData_callback', (data) => {
          this.conversations = apirtcProvider.conversations;
      });
      this.apiRTCSessionReadyHandler();
  }

  apiRTCSessionReadyHandler(){
      apiRTC.addEventListener("receiveData" , this.receiveDataHandler);
      apiRTC.addEventListener("incomingCall", this.apirtcProvider.incomingCallHandler);
      apiRTC.addEventListener("userMediaError", this.apirtcProvider.userMediaErrorHandler);
      apiRTC.addEventListener("remoteStreamAdded", this.apirtcProvider.remoteStreamAddedHandler);
      apiRTC.addEventListener("userMediaSuccess", this.apirtcProvider.userMediaSuccessHandler);
      apiRTC.addEventListener("hangup", this.apirtcProvider.hangupHandler);
  }

}

провайдер apiRTC

declare var iosrtc;
declare var apiRTC;
declare var apiCC;    
export class ApiRtcProvider {
    url = "root_url";
    user_main = {}; user_data = {}; conversations = []; friends = []; 
    conversation_offset: number = 0;

    iosrtc: any;
    apiRTC : any;
    apiCC: any;
    distantNumber:any;
    webRTCClient:any;
    state:any;
    constructor(public http: Http,
                private event: Events,  
                public platform: Platform
        ){

    }
    apiRTCInit(){
        apiRTC.init({
            onReady: this.sessionReadyHandler,
            apiKey: "APIKEY",
            apiCCId : my apiCCID
        });
    }
    sessionReadyHandler(){
        console.log("SessionReadyHandler", "api-rtc.ts");
        apiRTC = apiRTC;
        apiRTC.addEventListener("receiveData" , this.receiveDataHandler);
        apiRTC.addEventListener("incomingCall", this.incomingCallHandler);
        apiRTC.addEventListener("userMediaError", this.userMediaErrorHandler);
        apiRTC.addEventListener("remoteStreamAdded", this.remoteStreamAddedHandler);
        apiRTC.addEventListener("userMediaSuccess", this.userMediaSuccessHandler);
        apiRTC.addEventListener("hangup", this.hangupHandler);
        apiCC = apiCC;
        webRTCClient = this.apiCC.session.createWebRTCClient({});
        webRTCClient.setUserAcceptOnIncomingCall(true);
    }
    incomingCallHandler(e) {
        this.event.publish('gotoIncomingPage', data);
        //Or we can do other things to navigate another pages    
        //I can't use any data of Ionic at this moment:(
        }
    }

Основная проблема заключается в том, что Ionic-обработчик (или данные) не распознается в обработчике событий apiRTC , хотя он определен в Ionic-провайдере или где-либо еще. Как я могу перемещаться по другим страницам после запуска событий apiRTC? Любая помощь будет признательна.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...