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:[email protected]] 
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" <[email protected]> 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" <[email protected]> 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
> >
>

Reply via email to