我正在尝试使用Ionic 2的NFC模块。这是我的代码:
NFC-scan.ts:
import {Component} from '@angular/core';
import {IonicPage, NavController, NavParams, Platform} from 'ionic-angular';
import { Device } from '@ionic-native/device';
import {NFC, Ndef} from '@ionic-native/nfc';
@IonicPage()
@Component({
selector: 'nfc-scan',
templateUrl: 'nfc-scan.html',
})
export class NfcScan {
@ViewChild(Nav) nav: Nav;
NFC: NFC;
constructor(public platform: Platform,
public navCtrl: NavController,
public navParams: NavParams,
) {
}
// NFC Scanning
checkNFC()
{
this.NFC.enabled()
.then(() => {
this.addListenNFC();
})
.catch(err => {
console.log(err);
});
}
}
NFS-scan.html
<ion-content padding>
<button on (click)="checkNFC()">Scan NFC</button>
</ion-content>
当我运行应用程序时,我收到错误:
在'typeof NFC'类型中不存在属性'已启用'。
我知道我没有在nfc-scan.ts的构造函数中声明NFC。但是当我这样做时,页面甚至不会完全加载。
答案 0 :(得分:1)
我终于找到了解决这个问题的方法。事实证明,如果没有在要使用它的类的构造函数中声明它,就不能使用类。
在我的情况下,问题是,我在我的机器(Macbook)浏览器中运行应用程序,而NFC插件只能在支持NFC的手机(如相机插件)上实例化。话虽如此,Ionic现在提供了以某种方式模拟插件的功能,以便您可以在机器的浏览器中使用它们。
要在浏览器和离子服务会话中使用Ionic Native插件, 你只需要扩展原始的插件类并覆盖它 你想嘲笑的方法。
来源:https://ionicframework.com/docs/native/browser.html
希望能帮助像我这样的人。
答案 1 :(得分:0)
当页面未加载时,您通常会在控制台上看到输出。确保在构造函数中使用私有nfc:NFC;