Я работаю над приложением 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? Любая помощь будет признательна.Спасибо.