2017-10-21 16 views
0

Je suis nouveau sur le « ionique monde » et je suis en train d'utiliser ce plugin sur mon application ionique: https://www.npmjs.com/package/cordova-plugin-imeiComment utiliser les plugins cordova sur Ionic 3?

Cependant, lorsque je tente d'utiliser le plug-in sur mon contrôleur, il ne reconnaît pas la brancher. Voici le morceau de code:

obterIMEI(){ 
var permissions = cordova.plugins.permissions; 
var imei = cordova.plugins.imei; 
permissions.requestPermission(permissions.READ_PHONE_STATE, success, error); 
function error() { 
    this.msgOptions.message = 'Não há permissões para acessar o IMEI!'; 
    this.msg.create(this.msgOptions).present();  
} 
function success(status) { 
    imei.get(
     function (imei) { 
      console.log('worked'); 
      this.imei = imei; 
     }, 
     function() { 
      console.log('error'); 
      this.msgOptions.message = 'Erro ao acessar o IMEI!'; 
      this.msg.create(this.msgOptions).present();        
     } 
    ); 
} 

}

Les lignes cordova.plugins.permissions et window.plugins.imei.get ne sont pas reconnus et lorsque je tente de lancer l'application, je obtenir l'erreur suivante:

[10:20:54] typescript: src/pages/imei/imei.ts, line: 27 
     Cannot find name 'cordova'. 

    L26: obterIMEI(){ 
    L27: var permissions = cordova.plugins.permissions; 
    L28: permissions.requestPermission(permissions.READ_PHONE_STATE, success, error); 

[10:20:54] typescript: src/pages/imei/imei.ts, line: 35 
     Property 'plugins' does not exist on type 'Window'. 

    L34: function success(status) { 
    L35:  window.plugins.imei.get(
    L36:   function (imei) { 

J'ai déjà installé le plugin en utilisant le terminal mais cela ne fonctionne pas. Qu'est-ce que je rate? Merci d'avance.

Répondre

0

Déclarez une variable Ambient et utilisez-la. Exemple:

// Global ambient variable 
declare var cordova: any; 

function buscarImei() { 
    var permissions = cordova.plugins.permissions; 
    var imei = cordova.plugins.imei; 
    permissions.requestPermission(permissions.READ_PHONE_STATE, success, error); 
    function error() { 
     alertify.error("Sem Permissão para a busca de IMEI!"); 
    } 
    function success(status) { 
     imei.get(
      function (imei) { 
       // NOTE : This is Ionic 1 syntax. You need to check for accessing in Ionic 2/3 (Scope variable depreciated from ionic 2 onwards) 
       $scope.config.imei = imei; 
      }, 
      function() { 
       alertify.error("Erro ao carregar IMEI!!"); 
      } 
     ); 
    } 
}; 
+0

J'ai ajouté la variable et changé ma fonction comme vous l'avez fait et j'ai eu cette erreur: 'ReferenceError: cordova is not defined'. Je vais mettre à jour mon code sur la question. –

+0

Oui, vous obtiendrez "Cordova is not defined error" car vous auriez chargé l'application ionique sur un navigateur pour lequel les plugins que vous utilisez ne seront pas pris en charge. Générez l'Apk et essayez d'exécuter l'application sur un mobile. Cela devrait fonctionner comme prévu. –