iOS11新特性NFC检测

Core NFC是在iOS11中引入,用于处理NFC阅读Tag。目前NFC只开启了读权限,据分析应该是为了Apply Pay的安全问题。使用NFC前需要注意以下几点:

1、需要开启一个session,与其他session类似,同时只能开启一个。

2、需要App完全在前台模式。

3、每个session最多扫描60s,超时需再次开启新session。

4、配置读取单个或多个Tag,配置为单个时,会在读取到第一个Tag时自动结束session。

5、隐私描述。

第一步需要配置Capabilitles。使用NFC需要配置Capabilitles,这会自动为你生成entitlements文件中的必要配置。

2

第二步打开隐私相关设置。向info.plist中添加Privacy - NFC Scan Usage Description。


第三步激活App ID的相关功能。如下图所示。


第四步在项目中引入Core NFC。引入Core NFC和相关代理delegate.

#import "ViewController.h"
#import <CoreNFC/CoreNFC.h>
@interface ViewController ()<NFCNDEFReaderSessionDelegate>
@end

第五步代码实现。值得注意的是:1、当invalidateAfterFirstRead为YES时表示会在读取到第一个Tag时自动结束session,否则会话会持续。2、NFC只能在iPhone7及其以上设备中使用。

- (IBAction)click:(id)sender {

if (@available(ios 11.0,*)) {

if ([NFCNDEFReaderSession readingAvailable]) {

NFCNDEFReaderSession * message = [[NFCNDEFReaderSession alloc] initWithDelegate:self queue:nil invalidateAfterFirstRead:YES];

[message beginSession];

}

}

}

#pragma arguments

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

{

    if (@available( ios 11, *)) {

        for (NFCNDEFMessage * message in messages) {

            for (NFCNDEFPayload * payload in message.records) {

                NSLog(@"type===%@",payload.type);

                NSLog(@"typeNameFormat====%d",payload.typeNameFormat);


                NSLog(@"identifier===%@",payload.identifier);


                NSLog(@"payload===%@",payload.payload);


            }

        }

    }

}

-(void)readerSession:(NFCNDEFReaderSession *)session didInvalidateWithError:(NSError *)error

{

    NSLog(@"error=====%@",error);

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 一.环境 系统:iOS 11+;(现在还没推送,可以使用iTunes通过固件升级); 开发工具:Xcode9.0+...
    WHZ闹哪样阅读 3,796评论 2 7
  • 聪明的人,总在寻找好心情;成功的人,总在保持好心情;幸福的人,总在享受好心情。同样是一颗心,有的能装下高山,有的能...
    清莲_2be4阅读 288评论 0 0
  • ————新——年——分——隔——线————
    行走在路上呢阅读 202评论 0 0