Thanks Jesse - seems like a doc issue we need to write for cross platform plugins. Would you know if this is a concern for other platforms as well besides WP7?
On 2012-07-27, at 6:00 PM, Jesse <[email protected]> wrote: > Okay, that all looks/sounds fine. > However, we have to be careful not to encourage passing multiple > objects in the array, in addition to multiple different object types. > We should continue to strive to make sure that everything outside of > exec is portable, so even though in iOS, exec can receive args of > [{name:value}, {name:value}] the JS calling code will NOT be portable. > > I worry (just a little) we are opening a door we may have to close later. > > > > > > On Fri, Jul 27, 2012 at 5:37 PM, Shazron <[email protected]> wrote: >> These changes transfer the decision that was done in JS to the Objective-C >> side. >> The arguments are passed in as-is, if an object is passed in as an >> array element, it is converted to a NSDictionary in objective-C. So if >> you use the new plugin signature, you can pass in as many objects as >> you want to the plugin method, they will be in order in the arguments >> array as NSDictionary-s. >> >> The "extraction" occurs when we compare the plugin method signature - >> if its a legacy signature, we extract the first NSDictionary from the >> arguments, like we did in JS. If its not a legacy signature, we pass >> the arguments unchanged. >> >> re: >> https://github.com/agrieve/incubator-cordova-ios/compare/legacy_exec#L3R63 >> >> >> On Fri, Jul 27, 2012 at 5:26 PM, Jesse <[email protected]> wrote: >>> Wait! >>> >>> Can we discuss the EXACT nature of the command array? >>> I have had to work through a similar issue on WP7, it would be >>> extremely valuable if we could agree on what the args to exec looks >>> like. >>> >>> It looks like your changes are all inside and beyond exec, but I want >>> to make sure. >>> >>> In the past we discussed removing the array altogether and passing >>> named objects as args. >>> On WP7 it is extremely difficult to interpret arrays that do not >>> contain the same types of object. >>> For example, if the command has args of ['what',23,{obj:literal},[1,2,3]] >>> >>> Do we still have a limitation of only passing 1 object literal? >>> >>> >>> >>> On Fri, Jul 27, 2012 at 5:08 PM, Andrew Grieve <[email protected]> wrote: >>>> Committed. >>>> Sounds good! You update the dev guide, and I'll work to update the existing >>>> core plugins. >>>> >>>> >>>> On Fri, Jul 27, 2012 at 6:22 PM, Shazron <[email protected]> wrote: >>>> >>>>> Thanks Andrew, this looks good! >>>>> >>>>> Once you merge it in, I'll add the doc issues, especially the Plugin >>>>> Dev Guide, we don't want people to start using the old way. I was >>>>> thinking, a deprecation NSLog would be great if they are using the old >>>>> way, but that will just be too much noise at this point... >>>>> >>>>> On Fri, Jul 27, 2012 at 2:06 PM, Andrew Grieve <[email protected]> >>>>> wrote: >>>>>> Shaz, >>>>>> >>>>>> I mentioned doing such a change during PGD, but was hoping you could >>>>> give it >>>>>> a sanity check over: >>>>>> >>>>>> https://issues.apache.org/jira/browse/CB-1150 >>>>>> https://github.com/agrieve/incubator-cordova-ios/compare/legacy_exec >>>>>> https://github.com/agrieve/incubator-cordova-js/tree/better_exec >>>>>> >>>>>> I ensured mobile-spec and unit tests pass, so should be good to go I >>>>> think. >>>>>> >>>>>> Andrew >>>>> >>> >>> >>> >>> -- >>> @purplecabbage >>> risingj.com > > > > -- > @purplecabbage > risingj.com
