首页 > 解决方案 > ionic 5(电容器)给出 NullInjectorError 空对象磁力计无法访问离子原生功能,

问题描述

NullInjectorError: No provider for Magnetometer 我的目标是读取传感器数据,如磁力计。使用 Ionic 5、Angular、电容 android。

你可以在https://github.com/kpproce/ionicMagnoMeter找到我的项目

我无法访问磁力计,因为对象是空的。我确实设法访问了相机,但这是网络版本中的标准配置......

我了解网络应用程序版本中可能不存在磁力计。有很多关于插件的说明,但无法让它们工作

遵循说明:https ://ionicframework.com/docs/native/magnetometer

准备:在终端VScode中:
--- npm install --save @ionic-native/core
--- npm install cordova-plugin-magnetometer

--- npm install @ionic-native/magnetometer
--- npx cap add android

使用的代码:
import { Component } from '@angular/core';
从'@capacitor/core'导入{插件};
从'@ionic-native/Magnetometer/ngx'导入{ Magnetometer, MagnetometerReading };

...

export class HomePage {
constructor(private magnetometer: Magnetometer) {} // 这似乎是问题,空对象

请参阅错误 NullInjectorError:没有磁力计提供程序!

标签: ionic-frameworkionic5capacitor-plugin

解决方案


请参阅:https ://forum.ionicframework.com/t/getting-error-no-provider-for-mediaplugin/53570/5

通常你会像这样添加离子原生插件:使用 cli 命令将插件添加到你的应用程序

ionic plugin add --save PLUGINNAME

从 npm 安装离子原生插件

npm install --save @ionic-native/PLUGINNAME

将其导入您的页面/提供程序和您的 app.module.ts

import {​​​​​​​​ PLUGINNAME }​​​​​​​​ from '@ionic-native/PLUGINNAME';

将其添加到您的 app.module.ts

providers: [ PLUGINNAME ]

在页面/提供程序的构造函数中使用 DI

constructor(private pluginName: PLUGINNAME) {​​​​​​​​ }​​​​​​​​

然后你可以在你的代码中使用它


推荐阅读