【问题标题】:Ionic native device plugin @ionic-native/device returns all nulls离子原生设备插件@ionic-native/device 返回所有空值
【发布时间】:2018-08-08 13:40:51
【问题描述】:

我需要在我的 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

【问题讨论】:

  • 您针对什么平台进行测试/开发?
  • @AndrewLively 我正在针对 iOS 和 Android 进行构建,但我正在尝试在浏览器 (Chrome) 中查看设备信息

标签: ionic-framework ionic3 cordova-plugins ionic-plugins


【解决方案1】:

如果您使用ionic serve 在浏览器中运行,那么大多数 ionic-native 插件将无法工作,因为 ionic 不会将其视为有效的浏览器平台。

这没有很好的记录,但在issue in the ionic-native repo 中进行了讨论。

【讨论】:

  • 我可以通过运行 cordova run browser 来使其正常工作,正如您发布的 ionic 问题响应中所述(我已经将 browser 添加为应用平台),谢谢!
【解决方案2】:

应该在“package.json”中查看已安装的包并查看它们的版本相同

核心包和原生包必须在同一版本,否则原生包不能太大。

必须删除文件夹“platforms”

使用这些命令

    ionic build

    ionic cordova platform add browser

    cordova run browser

.ts 的代码

console.log('Device Model is: ' + this.device.model);

并且有效!

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 2018-02-23
    • 2017-07-04
    • 1970-01-01
    • 2017-09-20
    • 2021-10-14
    • 1970-01-01
    相关资源
    最近更新 更多