From 76ada42564a16d0cc87b2110802219a4873fc35e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastia=CC=81n=20Katzer?= Date: Wed, 9 Oct 2013 10:50:15 +0200 Subject: [PATCH] Added js interface --- plugin.xml | 4 ++++ src/ios/APPBackgroundMode.h | 4 ++-- src/ios/APPBackgroundMode.m | 45 ++++++++++++++++++++++++++++++++++--- www/background-mode.js | 32 ++++++++++++++++++++++++++ 4 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 www/background-mode.js diff --git a/plugin.xml b/plugin.xml index d0a4307..03dcadd 100644 --- a/plugin.xml +++ b/plugin.xml @@ -16,6 +16,10 @@ + + + + diff --git a/src/ios/APPBackgroundMode.h b/src/ios/APPBackgroundMode.h index a5f87d1..b039590 100644 --- a/src/ios/APPBackgroundMode.h +++ b/src/ios/APPBackgroundMode.h @@ -14,9 +14,9 @@ @interface APPBackgroundMode : CDVPlugin // Aktiviert den Hintergrundmodus -- (void) activateMode; +- (void) activate:(CDVInvokedUrlCommand *)command; // Deaktiviert den Hintergrundmodus -- (void) deactivateMode; +- (void) deactivate:(CDVInvokedUrlCommand *)command; @property (nonatomic, strong) CLLocationManager* locationManager; diff --git a/src/ios/APPBackgroundMode.m b/src/ios/APPBackgroundMode.m index 7340506..d1bfb20 100644 --- a/src/ios/APPBackgroundMode.m +++ b/src/ios/APPBackgroundMode.m @@ -9,11 +9,44 @@ #import "APPBackgroundMode.h" +@interface APPBackgroundMode (PrivateMethods) + +// Aktiviert den Hintergrundmodus +- (void) activateMode; +// Deaktiviert den Hintergrundmodus +- (void) deactivateMode; + +@end + @implementation APPBackgroundMode @synthesize locationManager; -// Aktiviert den Hintergrundmodus +/** + * @js-interface + * + * Aktiviert den Hintergrundmodus. + */ +- (void) activate:(CDVInvokedUrlCommand *)command +{ + [self activateMode]; +} + +/** + * @js-interface + * + * Deaktiviert den Hintergrundmodus. + */ +- (void) deactivate:(CDVInvokedUrlCommand *)command +{ + [self deactivateMode]; +} + +/** + * @obj-c-interface + * + * Aktiviert den Hintergrundmodus. + */ - (void) activateMode { if (!locationManager) { @@ -30,7 +63,11 @@ [locationManager startUpdatingLocation]; } -// Deaktiviert den Hintergrundmodus +/** + * @obj-c-interface + * + * Deaktiviert den Hintergrundmodus. + */ - (void) deactivateMode { if (locationManager) { @@ -38,7 +75,9 @@ }; } -// Registriert sich für die (sleep/resume) Events und startet bzw. stoppt die Geo-Lokalisierung +/** + * Registriert die Listener für die (sleep/resume) Events und startet bzw. stoppt die Geo-Lokalisierung. + */ - (void) pluginInitialize { if (&UIApplicationDidEnterBackgroundNotification && &UIApplicationWillEnterForegroundNotification) { diff --git a/www/background-mode.js b/www/background-mode.js new file mode 100644 index 0000000..dc9c6dd --- /dev/null +++ b/www/background-mode.js @@ -0,0 +1,32 @@ +/** + * background-mode.js + * Cordova Background-Mode Plugin + * + * Created by Sebastian Katzer (github.com/katzer) on 09/10/2013. + * Copyright 2013 Sebastian Katzer. All rights reserved. + * GPL v2 licensed + */ + +var BackgroundMode = function () { + +}; + +Badge.prototype = { + /** + * Aktiviert den Hintergrundmodus. + */ + activate: function () { + cordova.exec(null, null, 'BackgroundMode', 'activate', []); + }, + + /** + * Deaktiviert den Hintergrundmodus + */ + deactivate: function (badge) { + cordova.exec(null, null, 'BackgroundMode', 'deactivate', []); + } +}; + +var plugin = new BackgroundMode(); + +module.exports = plugin; \ No newline at end of file