diff options
Diffstat (limited to 'iPhone/CordovaLib/Classes/CDVPluginResult.m')
-rwxr-xr-x | iPhone/CordovaLib/Classes/CDVPluginResult.m | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/iPhone/CordovaLib/Classes/CDVPluginResult.m b/iPhone/CordovaLib/Classes/CDVPluginResult.m index 5343dce..d9ba08f 100755 --- a/iPhone/CordovaLib/Classes/CDVPluginResult.m +++ b/iPhone/CordovaLib/Classes/CDVPluginResult.m @@ -18,8 +18,9 @@ */ #import "CDVPluginResult.h" -#import "JSONKit.h" +#import "CDVJSON.h" #import "CDVDebug.h" +#import "NSData+Base64.h" @interface CDVPluginResult () @@ -88,11 +89,26 @@ static NSArray* org_apache_cordova_CommandStatusMsgs; return [[self alloc] initWithStatus:statusOrdinal message:[NSNumber numberWithDouble:theMessage]]; } ++ (CDVPluginResult*)resultWithStatus:(CDVCommandStatus)statusOrdinal messageAsBool:(BOOL)theMessage +{ + return [[self alloc] initWithStatus:statusOrdinal message:[NSNumber numberWithBool:theMessage]]; +} + + (CDVPluginResult*)resultWithStatus:(CDVCommandStatus)statusOrdinal messageAsDictionary:(NSDictionary*)theMessage { return [[self alloc] initWithStatus:statusOrdinal message:theMessage]; } ++ (CDVPluginResult*)resultWithStatus:(CDVCommandStatus)statusOrdinal messageAsArrayBuffer:(NSData*)theMessage +{ + NSDictionary* arrDict = [NSDictionary dictionaryWithObjectsAndKeys: + @"ArrayBuffer", @"CDVType", + [theMessage base64EncodedString], @"data", + nil]; + + return [[self alloc] initWithStatus:statusOrdinal message:arrDict]; +} + + (CDVPluginResult*)resultWithStatus:(CDVCommandStatus)statusOrdinal messageToErrorObject:(int)errorCode { NSDictionary* errDict = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:errorCode] forKey:@"code"]; @@ -107,11 +123,23 @@ static NSArray* org_apache_cordova_CommandStatusMsgs; - (NSString*)toJSONString { - NSString* resultString = [[NSDictionary dictionaryWithObjectsAndKeys: - self.status, @"status", - self.message ? self. message:[NSNull null], @"message", - self.keepCallback, @"keepCallback", - nil] cdvjk_JSONString]; + NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys: + self.status, @"status", + self.message ? self. message:[NSNull null], @"message", + self.keepCallback, @"keepCallback", + nil]; + + NSError* error = nil; + NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict + options:NSJSONWritingPrettyPrinted + error:&error]; + NSString* resultString = nil; + + if (error != nil) { + NSLog(@"toJSONString error: %@", [error localizedDescription]); + } else { + resultString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + } if ([[self class] isVerbose]) { NSLog(@"PluginResult:toJSONString - %@", resultString); |