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的消息。就是这样。
结束!
Ionic 使用 NFC的更多相关文章
- ionic第二坑——ionic 上拉菜单(ActionSheet)安卓样式坑
闲话不说,先上图: 这是IOS上的显示效果,代码如下: HTML部分: <body ng-app="starter" ng-controller="actionsh ...
- ionic第一坑——ion-slide-box坑(ion-slide分两页的坑)
ionic.views.Slider = ionic.views.View.inherit({ initialize: function (options) { . . . function setu ...
- ionic之$ionicGesture手势(大坑)
鄙人来本公司前未用过ionic框架,但由于ionic是基于angularjs封装的,正好我用过angularjs,很荣幸的面试就过了,然后通过该网站http://www.ionic.wang(后面简称 ...
- Ionic2系列——Ionic 2 Guide 官方文档中文版
最近一直没更新博客,业余时间都在翻译Ionic2的文档.之前本来是想写一个入门,后来觉得干脆把官方文档翻译一下算了,因为官方文档就是最好的入门教程.后来越翻译越觉得这个事情确实比较费精力,不知道什么时 ...
- Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App
安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...
- Ionic 简单操作
在使用 Ionic 之前要安装 Nodejs,Cordova . Java 下载Java 网站.Java 默认安装在 C:\Program Files\Java 文件目录. Android 下载And ...
- 【初探IONIC】不会Native可不可以开发APP?
前言 Hybrid技术流行已经有一段日子了,楼主的关注点也一直围绕着移动端围绕着Hybrid相关展开,Hybrid已经是大大提升开发效率的开发方式了,但是仍然需要至少一个IOS与Andriod,那么可 ...
- 一个简单移动页面ionic打包成app
先贴JS代码好了,缓动和调整透明度的功能,最后用ionic打包成应用就可以 window.onload=function(){ search(); move(); calc();}function s ...
- 基于ionic+angulajs的混合开发实现地铁APP
基于ionic+angulajs的混合开发实现地铁APP 注:本博文为博主原创,转载时请注明出处. 项目源码地址:https://github.com/zhangxy1035/SubwayMap 一. ...
随机推荐
- Git push时不需要总输入密码
遇到问题: 最近因为换了自己的邮箱密码后,每次push的时候都需要填写密码,账号.很烦 解决方法: [戎马半生的答案] (http://www.cnblogs.com/zhaoyu1995/p/650 ...
- 89组合margin、padding、float、clear问题
有关css外边距margin和内边距padding样式,简而述之,顺时针方向旋转,按照上右下左读取,margin-top:/*距离上边距*/margin-right:/*距离右边距*/margin-b ...
- JavaScript 基础学习(二)js 和 html 的结合方式
第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...
- 开源工作流管理系统节点接收人设置“指定节点处理人”系列讲解
关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单 拖拽式表单 工作流系统CCBPM节点访问规则接收人规则 适配数据库: o ...
- MySQL索引底层数据结构
一.何为索引? 1.索引是帮助数据库高效获取数据的排好序的数据结构. 2.索引存储在文件中. 3.索引建多了会影响增删改效率. (下面这张图为计算机组成原理内容,每查询一次索引节点,都会进行一次磁盘I ...
- css的三种导入方式
内联样式表 <p style="font-size:50px; color:blue">css内联样式表</p> 内部样式表 <style type= ...
- oracle数据泵导入导出部分用户
问题描述:需要将140服务器中的tbomnew实例下的部分用户导入到118服务器下的tbompx实例中,本次导入导出的两个数据库均为19C 部分用户名:CORE,MSTDATA,BOMMGMT,CFG ...
- modbus 协议说明及常用格式
--- 说明: modbus协议一般适用于一个主设备访问多个从设备的硬件开发环境,类似于zigbee网络中的一个路由器多个协调器的一对多模型. modbus常用的寄存器类型为 3X 保持寄存器和 4X ...
- Ubuntu 系统连接到服务器
Ubuntu 系统连接到服务器 我用的是 Ubuntu18.04 系统 假设你的服务器上的用户名是 root, 域名或者 ip 地址是 xyz 而且配置好了安全组(阿里云的)和云解析 首先要安装 op ...
- SQL语法学习记录——JOIN
学习内容参考来源:www.runoob.com JOIN准备 --为了方便练习,在数据库中创建演示数据: create database TEST; use TEST ; ---------- go ...