diff --git a/src/ios/APPPrinter.m b/src/ios/APPPrinter.m index 74a917f..e23b3ed 100755 --- a/src/ios/APPPrinter.m +++ b/src/ios/APPPrinter.m @@ -13,7 +13,7 @@ @interface APPPrinter (Private) // Bereitet den Drucker-Kontroller vor -- (UIPrintInteractionController *) prepareController:(NSString*)content; +- (UIPrintInteractionController *) prepareController:(NSString *)content; // Überprüft, ob der Drucker-Dienst verfügbar ist - (BOOL) isPrintServiceAvailable; @@ -26,9 +26,9 @@ * Is printing available. * Callback returns true/false if printing is available/unavailable. */ -- (void) isServiceAvailable:(CDVInvokedUrlCommand*)command +- (void) isServiceAvailable:(CDVInvokedUrlCommand *)command { - CDVPluginResult *pluginResult = nil; + CDVPluginResult* pluginResult = nil; pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:[self isPrintServiceAvailable]]; @@ -40,14 +40,14 @@ * Öffnet den Drucker-Kontroller zur Auswahl des Druckers. * Callback gibt Meta-Informationen an. */ -- (void) print:(CDVInvokedUrlCommand*)command +- (void) print:(CDVInvokedUrlCommand *)command { - NSArray *arguments = [command arguments]; - CDVPluginResult *pluginResult = nil; + NSArray* arguments = [command arguments]; + CDVPluginResult* pluginResult = nil; if (![self isPrintServiceAvailable]) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR + pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"{success: false, available: false}"]; [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; @@ -57,7 +57,7 @@ if ([arguments count] == 0) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR + pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"{success: false, available: true}"]; [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; @@ -76,7 +76,7 @@ { NSString *result = [NSString stringWithFormat:@"{success: false, available: true, error: \"%@\"}", error.localizedDescription]; - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR + pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:result]; } @@ -132,7 +132,7 @@ if (printController) { - UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController]; + UIPrintInteractionController* controller = [UIPrintInteractionController sharedPrintController]; return (controller != nil) && [UIPrintInteractionController isPrintingAvailable]; } diff --git a/www/printer.js b/www/printer.js index dc92cde..17838ea 100755 --- a/www/printer.js +++ b/www/printer.js @@ -16,31 +16,44 @@ Printer.prototype = { * Überprüft, ob der Drucker-Dienst verfügbar ist. * * @param {Function} callback + * @param {Object?} scope callback scope (default: window) + * * @return {Boolean} */ - isServiceAvailable: function (callback) { - cordova.exec(callback, null, 'Printer', 'isServiceAvailable', []); + isServiceAvailable: function (callback, scope) { + var callbackFn = function () { + callback.apply(scope || window, arguments); + }; + + cordova.exec(callbackFn, null, 'Printer', 'isServiceAvailable', []); }, /** * Übergibt den HTML-Content an den Drucker-Dienst. * - * @param {String} content html string or DOM node (if latter, innerHTML is used to get the contents) - * @param {Function?} success callback function called if print successful. {success: true} - * @param {Function?} failure callback function called if print unsuccessful. If print fails, {error: reason}. If printing not available: {available: false} + * @param {String} content HTML string or DOM node (if latter, innerHTML is used to get the contents) + * @param {Function?} callback callback function called if print is completed. {success: bool, available: bool, error: reason} + * @param {Object?} scope callback scope (default: window) */ - print: function (content, success, failure) { - content = content.innerHTML || content; + print: function (content, callback, scope) { + var page = content.innerHTML || content, + callbackFn; - if (typeof content != 'string') { + if (typeof page != 'string') { console.log('Print function requires an HTML string. Not an object'); return; } - cordova.exec(success, failure, 'Printer', 'print', [content]); + if (typeof callback == 'function'){ + callbackFn = function () { + callback.apply(scope || window, arguments); + } + } + + cordova.exec(callbackFn, null, 'Printer', 'print', [page]); } }; -var printer = new Printer(); +var plugin = new Printer(); -module.exports = printer; \ No newline at end of file +module.exports = plugin; \ No newline at end of file