aboutsummaryrefslogtreecommitdiffstats
path: root/iPhone/CordovaLib/Classes/CDVPluginResult.m
diff options
context:
space:
mode:
Diffstat (limited to 'iPhone/CordovaLib/Classes/CDVPluginResult.m')
-rwxr-xr-xiPhone/CordovaLib/Classes/CDVPluginResult.m40
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);