美文网首页
CoreNFC讲解

CoreNFC讲解

作者: Apple技术产品粉 | 来源:发表于2017-07-31 19:43 被阅读0次

NFC原理

NFC(Near Field Communication)即近距离无线通讯技术。该技术由飞利浦公司和索尼公司共同开发,可以在移动设备、消费类电子产品、PC 和智能控件工具间进行近距离无线通信。NFC提供了一种简单、触控式的解决方案,可以让消费者简单直观地交换信息、访问内容与服务。

NFC通信过程

NFC通信技术,允许电子设备之间进行非接触式点对点数据传输(在十厘米内)交换数据。这个技术由免接触式射频识别(RFID)演变而来,并向下兼容RFID,主要用于手机等手持设备中提供M2M(Machine to Machine)的通信。由于近场通讯具有天然的安全性,因此,NFC技术被认为在手机支付等领域具有很大的应用前景。

什么是CoreNFC

CoreNFC是苹果推出的支持NFC通讯的框架,仅支持装有iOS 11的iPhone 7和iPhone 7Plus,Xcode 9 beta版。CoreNFC读取的是NDEF标签的数据。

怎么使用?首先,在你的开发者账号里面添加上对NFC的支持:

APPID中设置

其次,在你的XCode中添加TARGETS->Capabilities中打开Near Field Communication Tag Reading选项,XCode会自动帮你添加其他步骤

XCode中设置

然后就是写代码啦

首先导入框架:

#import <CoreNFC/CoreNFC.h>

然后声明一个NFCNDEFReaderSession对象:

@property (strong, nonatomic) NFCNDEFReaderSession *session;

NFCNDEFReaderSession对象初始化如下:

[self.session invalidateSession];

self.session = [[NFCNDEFReaderSession alloc] initWithDelegate:self

queue:nil

invalidateAfterFirstRead:NO];

if (NFCNDEFReaderSession.readingAvailable) {

self.session.alertMessage = @"把TAG放到手机背面";

[self.session beginSession];

} else {

[self showAlertMsg:@"此设备不支持NFC" title:@""];

}

然后实现NFCNDEFReaderSessionDelegate, NFCReaderSessionDelegate这两个代理方法即可:

#pragma mark - NFCNDEFReaderSessionDelegate

- (void)readerSession:(NFCNDEFReaderSession *)session didInvalidateWithError:(NSError *)error{    // 读取失败   

 NSLog(@"%@",error);   

 if (error.code == 201) {        NSLog(@"扫描超时");       

 [self showAlertMsg:error.userInfo[NSLocalizedDescriptionKey] title:@"扫描超时"];   

 }       

 if (error.code == 200) {        

NSLog(@"取消扫描");      

  [self showAlertMsg:error.userInfo[NSLocalizedDescriptionKey] title:@"取消扫描"];    

}

}

- (void)readerSession:(NFCNDEFReaderSession *)session didDetectNDEFs:(NSArray*)messages

{

// 读取成功

for (NFCNDEFMessage *msg in messages) {

NSArray *ary = msg.records;

for (NFCNDEFPayload *rec in ary) {

NFCTypeNameFormat typeName = rec.typeNameFormat;

NSData *payload = rec.payload;

NSData *type = rec.type;

NSData *identifier = rec.identifier;

NSLog(@"TypeName : %d",typeName);

NSLog(@"Payload : %@",payload);

NSLog(@"Type : %@",type);

NSLog(@"Identifier : %@",identifier);

}

}

[self.dataAry addObject:messages];

[self.tableView reloadData];

}

其中- (void)readerSession:(NFCNDEFReaderSession *)session didInvalidateWithError:(NSError *)error函数是为了报告扫描时发生的错误,- (void)readerSession:(NFCNDEFReaderSession *)session didDetectNDEFs:(NSArray*)messages是读出结果时调用的函数,来进行数据的操作。

相关文章

  • CoreNFC讲解

    NFC原理 NFC(Near Field Communication)即近距离无线通讯技术。该技术由飞利浦公司和索...

  • CoreNFC

    检测NFC 设备并读取里面包含的NDEF格式数据. 简述 使用CoreNFC,你能够读取(目前只能读取) 1-5种...

  • iOS CoreNFC

    iOS 11 中终于引入了NFC,但是目前只是开放了只读的权限。并且只能在 iPhone 7 和 iPhone 7...

  • iOS NFC — CoreNFC

    Core NFC在iOS 11中引入,用于处理NFC阅读Tag。由于目前只开放了读的权限,所以Core NFC是非...

  • iOS之NFC使用

    先了解几个概念什么是NFC?NDEF指的是什么?什么是CoreNFC? 什么是 NFC NFC(Near Fiel...

  • iOS 11 CoreNFC 使用

    CoreNFC 有以下几点要注意 开启一个session,并且同时只能开启一个 App完全在前台模式,切入后台失效...

  • iOS11中使用CoreNFC

    在2017的WWDC,苹果终于发布了众多开发者期待已久的系统级框架 CoreNFC。可能你对于NFC是什么并不是很...

  • iOS 11_CoreNFC初体验

    Core NFC 官方文档 NFC的开放是让我比较激动的功能之一,它是连接物理世界非常有效的方式.在现在物联网大热...

  • ios NFC尝试

    非常感谢大家利用自己宝贵的时间来阅读我的文章 , 这篇文章主要写我今天尝试性的用了一下ios11出的coreNFC...

  • Core NFC框架详细解析 (三) —— CoreNFC使用简

    版本号时间V1.02020.06.07 星期日 前言 今天翻阅苹果的API文档,发现多了一个框架Core NFC,...

网友评论

      本文标题:CoreNFC讲解

      本文链接:https://www.haomeiwen.com/subject/zsyrlxtx.html