import { Host } from './host'; import { Container, inject } from 'aurelia-dependency-injection'; import { DOM, PLATFORM } from 'aurelia-pal'; import { Platform } from '../platforms/platform'; import { IOS } from '../platforms/ios'; import { Android } from '../platforms/android'; @inject(Container) export class Cordova implements Host { public type = 'cordova'; constructor(private container: Container) { } get isAvailable() { return !!PLATFORM.global.cordova; } public start(): Promise { return new Promise((resolve) => { DOM.addEventListener('deviceready', () => { switch (this.getPlatformType()) { case 'ios': resolve(this.container.get(IOS)); break; default: resolve(this.container.get(Android)); break; } }, false); }); } private getPlatformType() { const device = PLATFORM.global.device || { platform: 'android' }; return device.platform.toLowerCase(); } }