Cordova Plugins JavaScript

Je commence à comprendre la façon dont Cordova fonctionne en interne de plus en plus; une chose que je lutte toujours avec le format des plugins JavaScript cependant.

Je suis habitué à l'écriture de mon JavaScript comme suit (ce qui est la norme de la convention, pour autant que je suis au courant):

(function () {
    var version = "EXAMPLE",
        v1,
        v2,
        v3
        res;

    function somePrivateFunction(successCallback, errorCallback) {
        someOtherPrivateFunction(sc, ec);
    }

    function someOtherPrivateFunction(successCallback, errorCallback) {
        cordova.exec(sc, ec, 'SomeService', 'SomeMethod', [args]);
    }

    res = {
        VERSION: version,
        doSomething: function (sc, ec) {
            somePrivateFunction(sc, ec);    
        }
    }

    window.myPlugin = res;
}());

Cependant, Cordova utilise un format que je suis complètement familier avec. Je pense (et j'en ai seulement entendu parler de ce terme ici et là), il utilise ce qu'on appelle require (à en juger par les déclarations en haut de la plupart des plugins).

Le format que je vois souvent dans l'officiel des plugins Cordova sont comme suit:

    var argscheck = require('cordova/argscheck'),
    utils = require('cordova/utils'),
    exec = require('cordova/exec');

var myPlugin = function () {

}

myPlugin.doSomething = function(successCallback, errorCallback) {
    exec(successCallback, errorCallback, 'SomeService', 'SomeMethod', [args]);
}

myPlugin.doSomethingElse = function(successCallback, errorCallback) {
    exec(successCallback, errorCallback, 'SomeService', 'SomeOtherMethod', [args]);
}

modules.export = myPlugin;

Peut-être que c'est parce que je n'ai pas de connaissances sur ce require bibliothèque - mais je n'ai pas l'obtenir? Cela semble complètement étranger à moi, en termes de JavaScript.

Ce qui est des modules, ce qui est le cordova/[...] de la syntaxe et de ce qu'indique-t-il. Où sont ces autres cordova les modules définis (est-ce la bonne terminologie) et où modules viennent de?

Et enfin, qu'est - modules.export faire? Je suis en train d'essayer de comprendre le <js-module> balise de plugin.xml et la <clobbers> tag, mais ce qui me retient, je pense.

Je comprends que, quand Cordova construit le projet, il insère cordova.define entourant le plugin.

Peut-être au moins quelqu'un peut préciser? Merci!

  • le besoin et exec fonctions sont des méthodes de l'cordova objet. Lorsque vous installez un plugin, il s'amalgament dans la fonction qui donne accès à l'cordova objet. Ces appels sont en fait cordova.exiger et cordoue.exec
  • Louis, cela n'a rien à avoir avec RequireJS, par mon explication. J'ai enlevé l'étiquette
  • Avec le plugin cadre, sauf si vous avez un besoin spécifique, vous avez seulement besoin de se préoccuper de la exec de commande qui est la fonction de pont entre js et du code natif.
  • personne n'a répondu à la partie de cette question sur la modules.export avez-vous jamais comprendre cela?
InformationsquelleAutor keldar | 2014-02-04