2017-08-19 2 views
0

J'essaie d'appeler un plugin cordova de mon projet devExtreme. L'une des méthodes fournies par le plug-in est malheureusement dans TypeScript et j'ai essayé beaucoup de différents angles de reproduire l'appel en JavaScript, votre aide sera très appréciée à traduire le code suivant: Plugin-Code:Typescript à Javascript pour cordova-plugins

function findNetworkPrinters(success: (printers: Printer[]) => void, failure: (reason: string) => void): void 

Ce que j'ai essayé:

cordova.plugins.brotherPrinter.findNetworkPrinters(function (Printer) { 
    alert(printer); 
}, onSuccess, onFail); 

Et:

cordova.plugins.brotherPrinter.findNetworkPrinters(function (Printer) { 
    alert(printer); 
}, function()error{ 
    alert(error); 
}); 

Une brève explication sur l'utilisation du plugin:

findNetworkPrinters

En cas de réussite, findNetworkPrinters fournira une liste des imprimantes qui ont été découverts sur le réseau (probablement en utilisant le WiFi). Ce n'est pas considéré comme une erreur pour aucune imprimante à trouver, et dans ce cas la liste sera juste vide.

Répondre

1

Si le plugin n'est pas déjà compilé, vous devez le compiler en JavaScript. Cependant généralement, si vous obtenez le plugin via npm, cette étape devrait déjà avoir été faite. Considérant la signature de la fonction votre deuxième essai était le plus correct, mais attention à propos de votre erreur de syntaxe dans la fonction d'erreur et que Printer et printer sont à différentes variables. À côté de cela, la fonction ne fournit pas une seule imprimante, mais un ensemble d'imprimantes. Une version plus correcte serait:

cordova.plugins.brotherPrinter.findNetworkPrinters(function(printers){ 
    printers.forEach(function(printer){ 
    alert(printer); 
    }); 
}, function(error){ 
    alert(error); 
});