如何在Ionic 3上使用cordova插件?

如何在Ionic 3上使用cordova插件?

问题描述:

我在“离子世界”新的和我想使用这个插件在我的应用程序离子:https://www.npmjs.com/package/cordova-plugin-imei如何在Ionic 3上使用cordova插件?

然而,当我尝试使用我的插件控制器上,它不承认插入。下面是一段代码:

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();        
     } 
    ); 
} 

}

线条cordova.plugins.permissionswindow.plugins.imei.get不承认,当我尝试运行应用程序,我得到以下错误:

[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) { 

我已经安装了使用终端的插件,但它不起作用。我错过了什么?提前致谢。

声明一个Ambient变量并使用它。例如:

// 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

我添加了变量,并改变了我的功能,因为你做了,我得到这个错误:'ReferenceError:cordova is not defined'。我要在这个问题上更新我的代码。 –

+0

是的,你会得到“cordova没有定义的错误”,因为你会将离子应用加载到你使用的插件不支持的浏览器上。构建Apk并尝试在移动设备上运行应用程序。它应该可以正常工作。 –