如何在构造函数 Angular 2 中不声明类的情况下调用类



我正在尝试使用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;

相关内容

  • 没有找到相关文章

最新更新