incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Lunny <alu...@gmail.com>
Subject Re: requiring javascript for plugins
Date Fri, 06 Jul 2012 17:41:29 GMT
+1 to everything Fil says.

On 6 July 2012 07:32, Filip Maj <fil@adobe.com> wrote:

> I have been thinking about all of these questions for a while, Don.
>
> In my opinion, I do not think that Cordova should mandate a specific way
> in which the JavaScript side of a plugin should be written or laid out.
> The only requirement really boils down to using the `exec` method.
>
> That said, the core APIs, which are just plugins, are wrapped in a
> cordova.define call and use cordova.require to get references to any other
> internal Cordova javascript bits, so I would _recommend_ users use this
> pattern (exactly how your second phonegap-toast.js link does, Don).
>
> It is cleaner as it does not trample over any globals.
>
> As for where to assign the plugin code, again, I think it is up to the
> plugin. I do not think it matters if it is assigned to navigator or to
> window.plugins. Whatever works for the user. However, assigning to the
> `cordova` object is not recommended as it may trample over
> variables/properties that the cordova framework needs to function.
>
> Finally, assigning to plugins.xml. No way to do it programmatically / at
> run-time at this time, and I do not think we will do that in the future
> (security considerations: you want to vet out which native bits will be
> run before build time).
>
> On 7/5/12 7:12 PM, "Don Coleman" <don.coleman@gmail.com> wrote:
>
> >Is there a new recommended way to include javascript for plugins?
> >
> >Previously I just jammed an object onto navigator or a global variable
> >
> >    navigator.toast = new Toasty();
> >
> >
> https://github.com/m00sey/Toasty/blob/f9dbf58e11cf4ecf386f70331960d33e8756
> >6dd9/assets/www/phonegap-toast.js
> >
> >I've rewritten this plugin's javascript as a module and I'm
> >recommending that the user requires the module in their code with
> >
> >    var toast = cordova.require('toast');
> >
> >
> https://github.com/don/Toasty/blob/bf61ff3c738cebcd285f82490920cf713ac095a
> >a/assets/www/phonegap-toast.js
> >
> >Is this the recommended way?
> >
> >It works fine, it's just an extra step for the user, and different
> >from using a builtin cordova function like
> >navigator.notification.vibrate.
> >
> >Should I still assign the plugin code to navigator or cordova?
> >Is there a way to have my plugin js required by plugin.xml,
> >cordova.addPlugin or some other function???
> >Are users to need to require built-in cordova for 2.0+?
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message