Okay, I just added an issue in the JIRA system - CB-4085. Let me know if I missed anything.
Thank you, Tyler On Jul 5, 2013, at 11:49 AM, Tyler Wilson <[email protected]> wrote: > Yes, I thought it would have handled it too, since I had seen that exec code > in the cordova.js file. But it appears the OS X version uses a different > method to get the JS objects into the native side. Odd, since I would expect > that code to be identical in both iOS and OS X. > > I will see if I can add a feature request. Have not used the tracking system > yet, so we shall see⦠> > Thanks, > Tyler > > On Jul 4, 2013, at 2:05 AM, Shazron <[email protected]> wrote: > >> You should add a feature request - surprised it didn't get "converted" >> using our mechanism here though: >> https://github.com/apache/cordova-js/blob/master/lib/osx/exec.js#L70 >> >> >> >> On Mon, Jul 1, 2013 at 4:20 PM, Tyler Wilson >> <[email protected]>wrote: >> >>> Good day, >>> >>> I just signed up to the mailing list, though I have been a very happy user >>> of Cordova for a while now. I am working on a plugin for Cordova, and have >>> thus far developed on iOS, and everything is fine. I started a new project >>> with Cordova OS X, and ported some code over. But it was not working right. >>> Took a long while to figure out what was happening. The iOS version has >>> support for passing ArrayBuffer objects from the JS to native side (as >>> NSData). This is a _very_ useful feature. So I had assumed it would work >>> with the OS X version. I was wrong of course. >>> >>> I tracked it down to this code in CDVBridge.m: >>> >>> - (NSArray WebScriptObject*)webScriptObject >>> { >>> // Assumption: webScriptObject has already been tested using isArray: >>> >>> NSUInteger count = [[webScriptObject valueForKey:@"length"] >>> integerValue]; >>> NSMutableArray *a = [NSMutableArray array]; >>> for (unsigned i = 0; i < count; i++) { >>> id item = [webScriptObject webScriptValueAtIndex:i]; >>> if ([item isKindOfClass:[WebScriptObject class]]) { >>> if ([self isArray:item]) { >>> [a addObject:[self convertWebScriptObjectToNSArray:item]]; >>> } else if ([self isDictionary:item]) { >>> [a addObject:[self >>> convertWebScriptObjectToNSDictionary:item]]; >>> }; >>> } else { >>> [a addObject:item]; >>> } >>> } >>> >>> return a; >>> } >>> >>> The ArrayBuffer object isKindOfClass WebScriptObject, but it is neither an >>> Array or a Dictionary, so it gets dropped here. >>> >>> Any chance on a patch to make this work? I am a programmer, but not >>> familiar enough with the Cordova internals and/or the WebScript area to >>> know the proper check and conversion to put here. >>> >>> Thank you, >>> Tyler >
