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 中找不到电容器社区/sqlite 的 GlobalSQLite 文件
如何删除 Ionic 5 电容器 Android 应用程序上不需要的权限?
离子 5 / 电容器 @capacitor/motion 坚持 DeviceMotionEvent.requestPermission