我需要在我的 Ionic 项目中进行设备检测,所以我已经@ionic-native/device
按照此处的说明安装了插件:https ://ionicframework.com/docs/native/device/
但是,当我将它连接到组件内部,然后运行ionic serve
以预览更改时,console.log 返回Device
所有值设置为的对象null
,当我尝试使用单个属性时也会发生同样的情况,例如this.device.model
:
这是我在组件内部使用它的方式:
import {Device} from "@ionic-native/device";
// ...
@Component({
// ...
})
export class MyComponent {
constructor(private device: Device) {
}
ngOnInit() {
console.log(this.device);
}
}
我也将它添加到AppModule
:
import {Device} from "@ionic-native/device";
// ...
@NgModule({
// ...
providers: [
Device
]
})
export class AppModule() {
}
Cordova 设备插件被自动注入config.xml
:
<?xml version='1.0' encoding='utf-8'?>
<widget <!-- ... --> >
<!-- ... -->
<plugin name="cordova-plugin-device" spec="2.0.0" />
</widget>
这是我的 Ionic 堆栈(至少应该与问题相关的包):
"@angular/*": "^5.2.4", // all packages
"@ionic-native/*": "4.5.2", // all packages
"@ionic-native/device": "4.5.2"
"ionic-angular": "3.9.2",
"cordova-plugin-device": "2.0.0",
"typescript": "2.6.2"
谢谢!
更新:
我可以通过运行在浏览器中获取设备详细信息:
cordova run browser
这假设您已将浏览器添加为平台,如果未运行:
ionic cordova platform add browser
(来自@AndrewLively 发布的答案中的链接:https ://stackoverflow.com/a/49034015/448816 )