Updated Branches: refs/heads/master deabeeb6f -> dfe407aad
[ios]CB-2189: support ArrayBuffer over exec bridge Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/dfe407aa Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/dfe407aa Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/dfe407aa Branch: refs/heads/master Commit: dfe407aad9c0ee053529f3cf53a3bc79d94622a9 Parents: deabeeb Author: Michal Mocny <[email protected]> Authored: Thu Jan 10 16:15:01 2013 -0500 Committer: Michal Mocny <[email protected]> Committed: Thu Jan 10 16:46:53 2013 -0500 ---------------------------------------------------------------------- CordovaLib/Classes/CDVInvokedUrlCommand.m | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/dfe407aa/CordovaLib/Classes/CDVInvokedUrlCommand.m ---------------------------------------------------------------------- diff --git a/CordovaLib/Classes/CDVInvokedUrlCommand.m b/CordovaLib/Classes/CDVInvokedUrlCommand.m index 833baad..7a0bf84 100644 --- a/CordovaLib/Classes/CDVInvokedUrlCommand.m +++ b/CordovaLib/Classes/CDVInvokedUrlCommand.m @@ -19,6 +19,7 @@ #import "CDVInvokedUrlCommand.h" #import "JSONKit.h" +#import "NSData+Base64.h" @implementation CDVInvokedUrlCommand @@ -58,9 +59,30 @@ _className = className; _methodName = methodName; } + [self massageArguments]; return self; } +- (void)massageArguments +{ + for (NSUInteger i = 0, count = [_arguments count]; i < count; ++i) { + id arg = [_arguments objectAtIndex:i]; + if (![arg isKindOfClass:[NSDictionary class]]) { + continue; + } + NSDictionary* dict = arg; + NSString* type = [dict objectForKey:@"CDVType"]; + if (!type || ![type isEqualToString:@"ArrayBuffer"]) { + continue; + } + NSString* data = [dict objectForKey:@"data"]; + if (!data) { + continue; + } + [(NSMutableArray*) _arguments replaceObjectAtIndex:i withObject:[NSData dataFromBase64String:data]]; + } +} + - (void)legacyArguments:(NSMutableArray**)legacyArguments andDict:(NSMutableDictionary**)legacyDict { NSMutableArray* newArguments = [NSMutableArray arrayWithArray:_arguments];
