如何在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.permissions和window.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!!");
}
);
}
};
我添加了变量,并改变了我的功能,因为你做了,我得到这个错误:'ReferenceError:cordova is not defined'。我要在这个问题上更新我的代码。 –
是的,你会得到“cordova没有定义的错误”,因为你会将离子应用加载到你使用的插件不支持的浏览器上。构建Apk并尝试在移动设备上运行应用程序。它应该可以正常工作。 –