zoukankan      html  css  js  c++  java
  • Ionic 使用 NFC

    Ionic 使用 NFC

    哎哟喂,因为项目需要使用 Ionic 调用手机 NFC 功能,踩了好多坑,真的是,不过终于不负众望拿到了id。现在就记录一下我的步骤和踩过的坑!

    步骤

    我装的Ionic可能是最新的,然后用到的调用NFC的插件是phonegap-nfc
    首先就是正常的创建项目,对了,我用的Angular 。

    给一下ionic官网是怎么说的,但是我觉得这个官网作用不大,但是还是贴一下吧
    https://ionicframework.com/docs/v3/native/nfc/

    然后项目创建完成起来了之后去安装插件。
    用下面两条命令安装插件:

    ionic cordova plugin add phonegap-nfc
    
    npm install @ionic-native/nfc
    

    安装完成需要在项目里面注入依赖,首先是 app.module.ts 文件里面,引入插件

    import {NFC, Ndef} from '@ionic-native/nfc/ngx';
    

    然后在 @NgModule 里面的 providers 里面加入 NFC 和 Ndef,就像这个样子:

    providers: [
            ···
            NFC,
            Ndef,
            ···
        ],
    

    然后在需要调用的页面里面引入插件,注入一下依赖:

    import {NFC, Ndef} from '@ionic-native/nfc/ngx';
    

    在构造函数里面加点东西:

    constructor(private nfc: NFC, private ndef: Ndef) {}
    

    最后监听 NFC 就可以了,可以写一个方法,都行,开心就好。

    	    this.nfc.addTagDiscoveredListener(() => {
                console.log('successfully attached ndef listener');
                alert('启动监听nfc');
            }, (err) => {
                alert('监听nfc失败' + err);
                console.log('error attaching ndef listener', err);
            }).subscribe((event) => {
                this.tag = event.tag;
                this.id = this.nfc.bytesToHexString(event.tag.id);
            });
    

    这样子的话,打一个包,直接生成apk文件,找一个有 NFC 的手机就可以测试一下了,NFC的权限不用管,默认都给了,不用额外加权限。

    还有 addTagDiscoveredListener 方法是 为匹配任何标签类型的标签注册一个事件侦听器。
    如果需要其他的监听类型可以修改,下面是官方的文档,有很多类型根据自己的需要改吧!
    https://github.com/chariotsolutions/phonegap-nfc#nfcaddndeflistener

    应该没问题!

    踩过的坑

    首先我没在 app.module.ts 文件里面注入依赖

    其次我最开是根据 ionic NFC 官网写的 ,但是官网写的监听事件是 addNdefListener :为任何NDEF标签注册一个事件监听器。,巧就巧在我直接找了张卡去读,结果显示监听是没问题的,但是卡贴上手机就是不走回调,就看github,然后改了个监听的方式,换成了 addTagDiscoveredListener:为匹配任何标签类型的标签注册一个事件侦听器 来监听,就OK了,所以说根据实际的需求,去github也就是上边那个链接选择自己合适的监听事件来监听NFC的消息。就是这样。

    结束!

  • 相关阅读:
    毕业设计每日博客--第一周4
    毕业设计每日博客--第一周3
    python使用chrome driver做简单爬虫--转载于简书
    毕业设计每日博客--第一周2
    毕业设计每日博客--第一周1
    每周总结9
    阅读笔记9--分析模式
    阅读笔记8--分析模式
    pycharm报错ModuleNotFoundError: No module named 'selenium'
    mac pycharm2019.3 安装和激活
  • 原文地址:https://www.cnblogs.com/wjw1014/p/12192569.html
Copyright © 2011-2022 走看看