I like the proposal, and do think our extensions should be namespaced. However, your one example of InAppBrowser is debatable if it is a polyfill or extension, and has good arguments for either side. So, perhaps we can leave that example (or any other specific plugin) aside, and focus on the overall proposal.
I would prefer cordova.plugins instead of directly on cordova. I also think it would be nice for devs to discover cordova extensions in web inspector by just typing cordova.plugins. and see whats available. -Michal On Wed, Feb 6, 2013 at 11:33 AM, Andrew Grieve <[email protected]> wrote: > Some of our APIs are meant to be polyfills, and some of them are not. > > It's great to expose the polyfill-type ones using the standards-based > symbols. E.g. FileEntry, requestFileSystem. > > For the custom ones though, I think it's important for devs to realize that > the APIs they are using are custom to Cordova, and will never work in other > browsers. > > Examples: > Camera: window.Camera > InAppBrowser: window.open() > globalization: navigator.globalization > > There's been some talk about deprecating the window.plugins namespace. But > why? I think it would be clearer if these apis were: > Camera: plugins.camera > InAppBrowser: plugins.inappbrowser.open > globalization: plugins.globalization > > This makes it much more clear that the APIs are not browser-based ones, but > Cordova-specific. > > If the rational to get rid of the plugins is to save on a global symbol, > how about using cordova as the namespace? > > cordova.camera.getPicture() > cordova.inappbrowser.open() > corodva.globalization.getLocale() > > aka: > cordova.$PLUGIN_NAME.exports > > Thoughts? >
