ionic 5(电容器)给出 NullInjectorError 空对象磁力计无法访问离子原生功能,

Posted

技术标签:

【中文标题】ionic 5(电容器)给出 NullInjectorError 空对象磁力计无法访问离子原生功能,【英文标题】:ionic 5 (capacitor) gives NullInjectorError empty object Magnetometer can not access ionic-native functionality, 【发布时间】:2021-07-21 21:21:57 【问题描述】:

NullInjectorError:没有磁力计提供程序 我的目标是读取传感器数据,例如磁力计。使用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 添加android

使用的代码: 从“@angular/core”导入组件; 从'@capacitor/core'导入插件; 从 '@ionic-native/Magnetometer/ngx' 导入 Magnetometer, MagnetometerReading ;

...

导出类主页 构造函数(私有磁力计:磁力计) //这似乎是问题,空对象

see error NullInjectorError: No provider for Magnetometer!

【问题讨论】:

已经发现了一个问题(感谢 Flavio):iimport Magnetometer, MagnetometerReading from '@ionic-native/magnetometer/ngx';最后一个 m 不应大写。文档不清楚:github.com/kpproce/ionicMagnoMeter 解决了 app.module.ts 中的问题(感谢..):在 Magnetometer 到提供者:[ provide: RouteReuseStrategy, useClass: IonicRouteStrategy , Magnetometer], 请不要在问题中编辑解决方案公告。接受(即单击旁边的“勾号”)现有答案之一,如果有的话。如果现有答案尚未涵盖您的解决方案,您还可以创建自己的答案,甚至接受它。 【参考方案1】:

见: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) ​​​​​​​​ ​​​​​​​​

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

【讨论】:

以上是关于ionic 5(电容器)给出 NullInjectorError 空对象磁力计无法访问离子原生功能,的主要内容,如果未能解决你的问题,请参考以下文章

带电容器的 Ionic 5 推送通知

在 Ionic 5 中找不到电容器社区/sqlite 的 GlobalSQLite 文件

如何删除 Ionic 5 电容器 Android 应用程序上不需要的权限?

离子 5 / 电容器 @capacitor/motion 坚持 DeviceMotionEvent.requestPermission

ionic vue 背景地理定位跟踪在 5 分钟后停止

如何在 Ionic 4/5 中拖动元素