Indeed. No platform tag kinda implies js-only plugin, so captures the spirit of the intent well!
On Tue, Feb 10, 2015 at 5:11 PM, Steven Gill <stevengil...@gmail.com> wrote: > Sounds like a smart change. > On Feb 10, 2015 2:10 PM, "tommy-carlos williams" <to...@devgeeks.org> > wrote: > > > Nice > > > > +1 > > > > One change in Cordova is a lot bette than expecting all plugins to change > > ;) > > > > > > -- > > tommy-carlos williams > > > > On 11 February 2015 at 07:54:17, Andrew Grieve (agri...@chromium.org) > > wrote: > > > > Strawman: > > > > If plugin.xml has *any* <platform>s, then only apply global tags to those > > platforms. > > If plugin.xml has *no* <platform>s, then apply global tags to all > > platforms. > > > > On Tue, Feb 10, 2015 at 2:18 PM, Tommy Williams <to...@devgeeks.org> > > wrote: > > > > > This won't actually help right now, but that feature detection would > > > actually be possible if the plugin's "clobbers" was always a child of > the > > > "platform" in plugin.xml. > > > > > > Right now, most plugins have their clobbers global to all platforms, > > > supported or not. If the clobbers is a child of the platform, then the > > > relevant js function/object would be undefined on an unsupported > > platform. > > > > > > This practice would also help in a situation where you might want > > different > > > plugins for different platforms, but exposing similar functionality on > > one > > > clobbered function/object (eg: the popular barcode scanner plugin + the > > > blackberry barcode scanner plugin). > > > > > > Unfortunately, most plugins don't do this, even though it is possible. > > > The natural way to determine whether some functionality is available is > > to > > > use the "feature detection" pattern. That is, if you want to call some > > > function normally found at "myobj.myfunc", you write code like this: > > > > > > If (myobj && (typeof myobj.myfunc === 'function')) ... > > > > > > For this to work you must take care to remove plugins that don't > support > > > your platform before you build for that platform. For example, before > you > > > build for firefoxos, you must remove the barcodescanner plugin (and > then > > > add it back when you build for supported platforms). Granted, this is > > > awkward, but I think it's worse to read the package.json file. > > > > > > Really the CLI should make the feature detection pattern work without > > > having to exclude plugins on unsupported platforms. That is, if a > plugin > > > doesn't support a platform, then it should contribute nothing when you > > > build for that platform. > > > > > > Julian > > > > > > -----Original Message----- > > > From: Axel Nennker [mailto:ignisvul...@gmail.com] > > > Sent: Tuesday, February 10, 2015 11:48 AM > > > To: dev > > > Subject: Re: Does this plugin support the current platform? > > > > > > And then the app has to load that package.json ? > > > On Feb 10, 2015 5:28 PM, "Steven Gill" <stevengil...@gmail.com> wrote: > > > > > > > Plugin.xml has a platforms tag for what platforms it supports. That > > > > info gets uploaded to the Cordova plugins registry when publishing. > > > > > > > > Soon this info will be available in package.json file each plugin > has. > > > > On Feb 10, 2015 7:25 AM, "Axel Nennker" <ignisvul...@gmail.com> > wrote: > > > > > > > > > Hi, > > > > > > > > > > is there a way how an app can determine whether a plugin supports > > > > > the current platform? > > > > > > > > > > E.g.: the barcodescanner plugin is not supporting firefoxos How > > > > > could an app know that which out hardcoding this into the app? > > > > > > > > > > If there is a standard way in Cordova then this is a userland > > question. > > > > > If not then this is a feature request to add this info to e.g. > > > > > cordova/plugin_list exports.metadata ?! > > > > > > > > > > -Axel > > > > > > > > > > > > > > >