rename webview to engine

This commit is contained in:
Adam Bradley
2015-05-03 22:03:06 -05:00
parent 0c497484b6
commit 183db30ce4
10 changed files with 140 additions and 151 deletions

33
ionic/engine/cordova/cordova.js vendored Normal file
View File

@@ -0,0 +1,33 @@
import {engine} from '../engine';
engine.register({
name: 'cordova',
isMatch() {
return !(!window.cordova && !window.PhoneGap && !window.phonegap);
},
ready() {
return new Promise(resolve => {
setTimeout(resolve, 1000);
});
},
fullScreen(shouldShow) {
return new Promise(resolve => {
setTimeout(function() {
resolve(shouldShow);
}, 1000);
});
},
showStatusBar(shouldShow) {
return new Promise(resolve => {
setTimeout(function() {
resolve(shouldShow);
}, 1000);
});
},
exitApp() {
return new Promise(resolve => {
setTimeout(resolve, 1000);
});
}
});

View File

@@ -0,0 +1,37 @@
import * as util from 'ionic/util';
import {engine} from '../engine';
engine.register({
name: 'electron',
isMatch() {
try {
return util.isDefined(process) && util.isDefined(require) && util.isDefined(require('nw.gui'));
} catch (e) {}
return false;
},
ready() {
return new Promise(resolve => {
setTimeout(resolve, 1000);
});
},
fullScreen(shouldShow) {
return new Promise(resolve => {
setTimeout(function() {
resolve(shouldShow);
}, 1000);
});
},
showStatusBar(shouldShow) {
return new Promise(resolve => {
setTimeout(function() {
resolve(shouldShow);
}, 1000);
});
},
exitApp() {
return new Promise(resolve => {
setTimeout(resolve, 1000);
});
}
});

73
ionic/engine/engine.js Normal file
View File

@@ -0,0 +1,73 @@
import * as util from 'ionic/util';
let registry = {};
let defaultEngine;
let activeEngine;
class EngineController {
constructor() {
let self = this;
let proxyMethods = 'ready fullScreen showStatusBar exitApp'.split(' ');
for (let x = 0; x < proxyMethods.length; x++) {
this[proxyMethods[x]] = function() {
return self.proxy(proxyMethods[x], arguments);
}
}
}
proxy(target, args) {
let eng = this.get()
if (eng && eng[target]) {
return eng[target].apply(this, args);
}
return new Promise(resolve => {}, reject => {
reject();
});
}
is(name) {
return this.name === name;
}
getName() {
return this.get().name;
}
get() {
if (util.isUndefined(activeEngine)) {
this.set(this.detect());
}
return activeEngine || defaultEngine;
}
set(eng) {
activeEngine = eng;
}
setDefault(eng) {
defaultEngine = eng;
}
register(eng) {
registry[eng.name] = eng;
}
detect() {
for (let name in registry) {
if (registry[name].isMatch()) {
return registry[name];
}
}
return null;
}
}
export let engine = new EngineController();
engine.setDefault({
name: 'default',
ready: util.dom.windowLoad
});