diff --git a/src/@ionic-native/plugins/in-app-browser/index.ts b/src/@ionic-native/plugins/in-app-browser/index.ts index 922bddbe..c56422ef 100644 --- a/src/@ionic-native/plugins/in-app-browser/index.ts +++ b/src/@ionic-native/plugins/in-app-browser/index.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; -import { Plugin, CordovaInstance, IonicNativePlugin } from '@ionic-native/core'; +import { Plugin, CordovaInstance, InstanceCheck, IonicNativePlugin } from '@ionic-native/core'; import { Observable } from 'rxjs/Observable'; -import 'rxjs/add/observable/fromEvent'; +import { Observer } from 'rxjs/Observer'; declare const cordova: Cordova & { InAppBrowser: any; }; @@ -141,8 +141,12 @@ export class InAppBrowserObject { * @param event {string} Name of the event * @returns {Observable} Returns back an observable that will listen to the event on subscribe, and will stop listening to the event on unsubscribe. */ + @InstanceCheck() on(event: string): Observable { - return Observable.fromEvent(this._objectInstance, event); + return new Observable((observer: Observer) => { + this._objectInstance.addEventListener(event, observer.next.bind(observer)); + return () => this._objectInstance.removeEventListener(event, observer.next.bind(observer)); + }); } }