2 votes

Création de plugins Ionic à l'aide de Plugman

Je suis nouveau dans Ionic et Cordova. J'ai besoin de créer un plugin pour ionique en utilisant Cordova et de l'intégrer dans une application ionique type.

Les étapes que j'ai suivies sont :

Création d'un plugin ionique simple à l'aide de plugman

plugman create --name SayHello --plugin_id cordova-plugin-sayhello -plugin_version 0.0.1

Ajout de la plateforme Android au plugin ci-dessus.

cd SayHello/ && plugman platform add --platform_name android

Maintenant je veux intégrer ce plugin dans mon application ionique.

ionic cordova plugin add ../SayHello

Dans mon application ionique, à l'intérieur de Home.ts, j'ai écrit ce morceau de code.

declare var cordova: any;
var success = function(result) {
  console.log(result);
}
var failure = function(err) {
  console.log(err);
}
cordova.plugins.HelloWorld.coolMethod("SayHelloTest", success, failure);

Le problème est que je ne peux appeler aucune fonction à partir d'un succès ou d'un échec dans l'application ionique.

comme si j'appelais la fonction doSomething depuis le succès :

var success = function(result) {
   doSomething(result);
}

Il montre l'erreur doSomething fonction non trouvée. Il ne peut s'imprimer que dans la console.

1voto

Suraj Rao Points 23390

Vous devez créer le succès comme fonction de classe et l'envoyer comme fonction liée ou l'appeler à l'intérieur de la flèche.

declare var cordova:any;

class HomePage{
    //constructor etc...
    doSomething(res:any){
    }

    success(result){
        this.doSomething(result);
    }
    failure(err){}
    //..
    //call
    callCordovaFunction(){
        cordova.plugins.HelloWorld.coolMethod("SayHelloTest", this.success.bind(this), this.failure.bind(this));
    //or
        cordova.plugins.HelloWorld.coolMethod("SayHelloTest", (res)=>this.success(res),(err)=>this.failure(err));    
    }
}

0voto

elnezah Points 185

Après avoir créé le plugin, il est théoriquement possible de l'importer également avec plugman afin de faire ce que vous essayez de faire. J'ai lu que la commande est : plugman install --platform android --project projectPlatformPath --plugin pluginPath

Quoi qu'il en soit, cette n'a pas fonctionné pour moi lorsque j'ai essayé et rend également votre plugin inconfortable à utiliser. C'est probablement une meilleure idée de créer un wrapper ionique pour votre plugin avec gulp et le copier dans le dossier de votre projet node_modules/@ionic-native . De cette façon, vous pourrez l'injecter comme les autres plugins que vous ajoutez avec ionic cordova plugin add cordova-plugin-name-here . C'est également la méthode recommandée par Ionic.

Des instructions détaillées seraient longues à écrire ici. Juste visitez ce tutoriel et suivez les instructions étape par étape.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X