mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-03-03 16:03:02 +08:00
Aww yis
This commit is contained in:
parent
5b754390f5
commit
3327fe8f45
@ -1,3 +1,10 @@
|
||||
# Ionic Native
|
||||
|
||||
Native plugins to replace ngCordova
|
||||
Ionic Native comes with a curated set of Native Cordova plugins that you can use to
|
||||
pretty much do any native function you need from your [Ionic](http://ionicframework.com/), Cordova, or Web View mobile apps.
|
||||
|
||||
# Credits
|
||||
|
||||
Max Lynch - [@maxlynch](http://twitter.com/maxlynch)
|
||||
|
||||
Rob Wormald - [@robwormald](https://twitter.com/robwormald)
|
||||
|
2
dist/plugins/plugin.js
vendored
2
dist/plugins/plugin.js
vendored
@ -49,7 +49,7 @@ function Cordova(opts) {
|
||||
if (opts.promise) {
|
||||
console.log('TODO: Promise');
|
||||
}
|
||||
obj[methodName] = exports.wrap(obj, methodName, opts);
|
||||
obj[methodName] = exports.wrap(obj, methodName, opts).bind(obj);
|
||||
};
|
||||
}
|
||||
exports.Cordova = Cordova;
|
||||
|
4
dist/plugins/toast.js
vendored
4
dist/plugins/toast.js
vendored
@ -18,8 +18,8 @@ var Toast = (function () {
|
||||
], Toast, "hide");
|
||||
__decorate([
|
||||
plugin_1.Cordova({
|
||||
successIndex: 0,
|
||||
errIndex: 1
|
||||
successIndex: 1,
|
||||
errIndex: 2
|
||||
})
|
||||
], Toast, "showWithOptions");
|
||||
Toast = __decorate([
|
||||
|
5
dist/src/cordova.d.ts
vendored
5
dist/src/cordova.d.ts
vendored
@ -1,5 +0,0 @@
|
||||
export declare class Cordova {
|
||||
static hasPlugin(pluginRef: string): boolean;
|
||||
static plugin(pluginRef: string): any;
|
||||
static promisify(pluginRef: any, pluginName: any, methodName: any, successIndex: any, errorIndex: any): (...args: any[]) => any;
|
||||
}
|
42
dist/src/cordova.js
vendored
42
dist/src/cordova.js
vendored
@ -1,42 +0,0 @@
|
||||
var util_1 = require('./util');
|
||||
var Cordova = (function () {
|
||||
function Cordova() {
|
||||
}
|
||||
Cordova.hasPlugin = function (pluginRef) {
|
||||
return !!this.plugin(pluginRef);
|
||||
};
|
||||
Cordova.plugin = function (pluginRef) {
|
||||
return util_1.get(window, pluginRef);
|
||||
};
|
||||
Cordova.promisify = function (pluginRef, pluginName, methodName, successIndex, errorIndex) {
|
||||
var _this = this;
|
||||
return function () {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i - 0] = arguments[_i];
|
||||
}
|
||||
return new Promise(function (resolve, reject) {
|
||||
if (!window.cordova) {
|
||||
console.warn('Cordova: tried calling', '"' + pluginName + '.' + methodName + '"', 'but Cordova is not defined. Please make sure you have cordova.js included in your index.html file and you are running in a proper cordova environment');
|
||||
reject({
|
||||
error: 'cordova_not_available'
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!_this.hasPlugin(pluginRef)) {
|
||||
console.warn('Cordova: tried calling', '"' + pluginName + '.' + methodName + '"', 'but the ' + pluginName + ' plugin is not installed.');
|
||||
reject({
|
||||
error: 'plugin_not_installed'
|
||||
});
|
||||
return;
|
||||
}
|
||||
console.log('Cordova: exec(' + pluginName + ', ' + methodName + ')');
|
||||
args[successIndex] = resolve;
|
||||
args[errorIndex] = reject;
|
||||
util_1.get(window, pluginRef)[methodName].apply(_this, args);
|
||||
});
|
||||
};
|
||||
};
|
||||
return Cordova;
|
||||
})();
|
||||
exports.Cordova = Cordova;
|
2
dist/src/plugins/plugin.js
vendored
2
dist/src/plugins/plugin.js
vendored
@ -48,7 +48,7 @@ function Cordova(opts) {
|
||||
if (opts.promise) {
|
||||
console.log('TODO: Promise');
|
||||
}
|
||||
obj[methodName] = exports.wrap(obj, methodName, opts);
|
||||
obj[methodName] = exports.wrap(obj, methodName, opts).bind(obj);
|
||||
};
|
||||
}
|
||||
exports.Cordova = Cordova;
|
||||
|
4
dist/src/plugins/toast.js
vendored
4
dist/src/plugins/toast.js
vendored
@ -20,8 +20,8 @@ var Toast = (function () {
|
||||
], Toast, "hide", void 0);
|
||||
__decorate([
|
||||
plugin_1.Cordova({
|
||||
successIndex: 0,
|
||||
errIndex: 1
|
||||
successIndex: 1,
|
||||
errIndex: 2
|
||||
}),
|
||||
__metadata('design:type', Object)
|
||||
], Toast, "showWithOptions", void 0);
|
||||
|
@ -1,43 +0,0 @@
|
||||
//patch the window definition
|
||||
declare var Promise;
|
||||
declare var cordova;
|
||||
declare var window;
|
||||
|
||||
import {get} from './util';
|
||||
|
||||
export class Cordova {
|
||||
static hasPlugin(pluginRef: string) {
|
||||
return !!this.plugin(pluginRef);
|
||||
}
|
||||
static plugin(pluginRef: string) {
|
||||
return get(window, pluginRef);
|
||||
}
|
||||
|
||||
static promisify(pluginRef, pluginName, methodName, successIndex, errorIndex) {
|
||||
return (...args) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if(!window.cordova) {
|
||||
console.warn('Cordova: tried calling', '"' + pluginName + '.' + methodName + '"', 'but Cordova is not defined. Please make sure you have cordova.js included in your index.html file and you are running in a proper cordova environment');
|
||||
reject({
|
||||
error: 'cordova_not_available'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if(!this.hasPlugin(pluginRef)) {
|
||||
console.warn('Cordova: tried calling', '"' + pluginName + '.' + methodName + '"', 'but the ' + pluginName + ' plugin is not installed.');
|
||||
reject({
|
||||
error: 'plugin_not_installed'
|
||||
});
|
||||
return;
|
||||
}
|
||||
console.log('Cordova: exec(' + pluginName + ', ' + methodName +')');
|
||||
|
||||
args[successIndex] = resolve;
|
||||
args[errorIndex] = reject;
|
||||
|
||||
get(window, pluginRef)[methodName].apply(this, args);
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
@ -57,6 +57,6 @@ export function Cordova(opts:any = {}) {
|
||||
console.log('TODO: Promise');
|
||||
}
|
||||
|
||||
obj[methodName] = wrap(obj, methodName, opts);
|
||||
obj[methodName] = wrap(obj, methodName, opts).bind(obj);
|
||||
}
|
||||
}
|
||||
|
@ -13,8 +13,8 @@ export class Toast {
|
||||
static hide;
|
||||
|
||||
@Cordova({
|
||||
successIndex: 0,
|
||||
errIndex: 1
|
||||
successIndex: 1,
|
||||
errIndex: 2
|
||||
})
|
||||
static showWithOptions;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user