我正在尝试使用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 扫描.html
<ion-content padding>
<button on (click)="checkNFC()">Scan NFC</button>
</ion-content>
当我运行应用程序时,出现错误:
属性"已启用"在类型"NFC"上不存在。
我知道我不是在nfc-scan.ts的构造函数中声明NFC。但是当我这样做时,页面甚至不会完全加载。
我终于设法找到了解决这个问题的方法。事实证明,如果不在要使用的类的构造函数中声明一个类,就不能使用它。
就我而言,问题是,我在机器的(Macbook(浏览器中运行该应用程序,而NFC插件只能在支持NFC(如相机插件(的手机上实例化。话虽如此,Ionic 现在提供了以某种方式模拟插件的功能,以便您可以在机器的浏览器中使用它们。
要在浏览器和 ionic serve 会话中使用 Ionic Native 插件, 您只需要扩展原始插件类并覆盖 你想嘲笑的方法。
来源: https://ionicframework.com/docs/native/browser.html
希望它能帮助像我这样的人。
当页面未加载时,您通常会在控制台上看到输出。确保在构造函数中使用私有 nfc:NFC;