无论我做什么还是尝试我都无法获得有关该设备的信息。我正在使用离子4的最新版本。
由于我在网上找到的基本上都是
这当然不是问题所在。我没有这样做,我有科尔多瓦可用,等等。
我正在android和ios设备上进行测试。我在服务中处理此问题。我用按钮调用函数,所以一切都比不上,一切都准备好了。这是我要工作的代码:
import { Injectable } from '@angular/core';
import { Device } from '@ionic-native/device/ngx';
import { Platform } from '@ionic/angular';
@Injectable({
providedIn: 'root'
})
export class InitialService {
eldevice: any = '';
constructor(
private device: Device,
private platform: Platform
) {}
async setup() {
if (this.platform.is('cordova')) { // es movil
this.eldevice = await this.storage.get('device');
if (this.eldevice == null) { // nuevo device
this.eldevice.platform = this.device.platform;
this.eldevice.version = this.device.version;
this.eldevice.uuid = this.device.uuid;
this.eldevice.manufacturer = this.device.manufacturer;
console.log('datos sin await', this.eldevice);
this.eldevice = await this.storage.set('device', this.device);
} else { // device conocido
console.log('datos guardados', this.eldevice);
}
} else { // es virtual
console.log('virtual');
}
}
clearData() {
this.storage.clear();
this.eldevice = null;
}
}
答案 0 :(得分:0)
已更新:
任何cordova插件都需要您等待平台处于“就绪”状态。 因此,在调用/使用插件之前,您需要调用platform.ready()方法并在回调中或“等待”之后调用特定的插件函数。
还要查看您的setup()方法,您似乎想尝试访问在存储检查后为其分配了'null'的对象的属性。查看下面代码中的注释:
v_j