ionic-framework - 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) {} // 这似乎是问题,空对象
解决方案
请参阅: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) { }
然后你可以在你的代码中使用它
推荐阅读
- ms-word - 如何运行邮件合并但保留某些合并字段“未处理”,即不要有条件地删除某些合并字段
- python - Python检查切片后行是否为空
- javascript - PouchDB IE11 使用 file://
- javascript - Thymeleaf 预处理表达式不能附加括号
- css - 动态更新 Ext.grid.ActionColumn 中单元格的光标样式
- ibm-doors - 将 IF 语句添加到 DXL 脚本以检查对象类型?
- swift - 我是否必须为 MacOS 以下的 el capitan 制作一个 swift 和 xcode 较低的新项目?
- ios - 如何使用组合框架 NSObject.KeyValueObservingPublisher?
- swift - Swift 中有没有办法部分匹配泛型?
- python - 通过 GUI 用户交互和行命令触发 tkinter 回调