diff --git a/src/plugins/apprate.ts b/src/plugins/apprate.ts index 4e1dde3d2..be2b80485 100644 --- a/src/plugins/apprate.ts +++ b/src/plugins/apprate.ts @@ -1,4 +1,6 @@ -import {Plugin, Cordova} from './plugin'; +import {Plugin, Cordova, CordovaProperty} from './plugin'; + +declare var window; /** * The AppRate plugin makes it easy to prompt the user to rate your app, either now, later, or never. @@ -43,8 +45,10 @@ export class AppRate { * customLocale {Object} null - custom locale object * @type {{}} */ - @Cordova() - static preferences = {}; + @CordovaProperty + static get preferences(){ + return window.AppRate.preferences; + } /** * Prompts the user for rating diff --git a/src/plugins/device.ts b/src/plugins/device.ts index 0273c2e73..99829e452 100644 --- a/src/plugins/device.ts +++ b/src/plugins/device.ts @@ -1,4 +1,4 @@ -import {Plugin, RequiresPlugin} from './plugin'; +import {Plugin, CordovaProperty} from './plugin'; declare var window: { device: Device @@ -49,8 +49,8 @@ export class Device { * * @returns {Object} The device object. */ - @RequiresPlugin - static getDevice() { + @CordovaProperty + static get device() { return window.device; } } diff --git a/src/plugins/plugin.ts b/src/plugins/plugin.ts index 776b8d473..321eb0686 100644 --- a/src/plugins/plugin.ts +++ b/src/plugins/plugin.ts @@ -170,20 +170,20 @@ export function Cordova(opts:any = {}) { /** * Before calling the original method, ensure Cordova and the plugin are installed. */ -export function RequiresPlugin(target: Function, key: string, descriptor: TypedPropertyDescriptor) { - let originalMethod = descriptor.value; +export function CordovaProperty(target: Function, key: string, descriptor: TypedPropertyDescriptor) { + let originalMethod = descriptor.get; - descriptor.value = function(...args: any[]) { + descriptor.get = function(...args: any[]) { // console.log('Calling', this); if(!window.cordova) { cordovaWarn(this.name, null); - return; + return {}; } let pluginInstance = getPlugin(this.pluginRef); if(!pluginInstance) { pluginWarn(this, key); - return; + return {}; } return originalMethod.apply(this, args); } diff --git a/src/plugins/statusbar.ts b/src/plugins/statusbar.ts index 803ec124a..f1814e3ed 100644 --- a/src/plugins/statusbar.ts +++ b/src/plugins/statusbar.ts @@ -1,4 +1,4 @@ -import {Plugin, Cordova, RequiresPlugin} from './plugin'; +import {Plugin, Cordova, CordovaProperty} from './plugin'; declare var window; @@ -102,8 +102,8 @@ export class StatusBar { /** * Whether the StatusBar is currently visible or not. */ - @RequiresPlugin - static isVisible() { + @CordovaProperty + static get isVisible() { return window.StatusBar.isVisible; } }