iOS NFC功能开发

iOS NFC功能开发,第1张

概述一、NDEF格式的 使用 NFCNDEFReaderSession。Delegate为:NFCNDEFReaderSessionDelegate 1、初始化对象 @property(strong,nonatomic)NFCNDEFReaderSession *session; @property(strong,nonatomic)id<NFCNDEFTag> cuurentTag; self.se

一、NDEF格式的

使用 NFCNDEFReaderSession。Delegate为:NFCNDEFReaderSessionDelegate

1、初始化对象

@property(strong,nonatomic)NFCNDEFReaderSession *session;

@property(strong,nonatomic)ID<NFCNDEFTag> cuurentTag;

self.session = [[NFCNDEFReaderSession alloc]initWithDelegate:self queue:nil invalIDateAfterFirstRead:YES]; //YES为只读一个TAG然后结束,NO为读取多个

self.session.alertMessage = @"读取卡片,请将卡片靠近手机";

[self.session beginSession]; //开始识别 d出识别提示框

代理方法

-(voID)readerSession:(NFCNDEFReaderSession *)session dIDDetectTags:(NSArray<__kindof ID<NFCNDEFTag>> *)Tags API_AVAILABLE(ios(13.0)){

  self.cuurentTag = [Tags firstObject];

}

识别到卡片后会回调该方法,在该方法中可获取到tag。

2、读取卡片内容:获取到卡ID均为空,获取卡ID需要下面第二种方法。

2.1 需要先建立连接

[_session connectToTag:self.cuurentTag completionHandler:^(NSError * _Nullable error) { }];

2.2连接成功之后调用方法,可以获取到卡片的内容

[tag readNDEFWithCompletionHandler:^(NFCNDEFMessage *ndefMessage,NSError *error) { }];

3、写入NDEF内容

3.1 需要先建立连接

[_session connectToTag:self.cuurentTag completionHandler:^(NSError * _Nullable error) { }];

3.2连接成功之后调用方法获取卡片状态:判断是否可以写入

[self.cuurentTag queryNDEFStatusWithCompletionHandler:^(NFCNDEFStatus status,NSUInteger capacity,NSError * _Nullable error) {}];

状态 status == NFCNDEFStatusReaDWrite 则可以写入。

3.3 写入

[self.cuurentTag writeNDEF:myMessage completionHandler:^(NSError * _Nullable error) {}];

二、iOS13新支持的类型:NFCPollingISO14443  NFCPollingISO15693  NFCPollingISO15693

使用NFCTagReaderSession。Delegate为:NFCTagReaderSessionDelegate

1.初始化对象

self.session = [[NFCTagReaderSession alloc]

                    initWithPollingOption:(NFCPollingISO14443 | NFCPollingISO15693 | NFCPollingISO15693) delegate:self queue:dispatch_get_main_queue()];

self.session.alertMessage = @"读取卡片,请将卡片靠近手机";

[self.session beginSession]; //开始识别 d出识别提示框

代理方法

-(voID)tagReaderSession:(NFCTagReaderSession *)session  dIDDetectTags:(NSArray<__kindof ID<NFCTag>> *)Tags{

  self.cuurentTag = [Tags firstObject];

}

2、读取ID(判断卡类型,以下以其中一种为例),内容获取方法同上

if (self.currentTag.type == NFCTagTypemifare) {

        ID<NFCmifareTag> mifareTag = [self.currentTag asNFCmifareTag];

    NSData *data = mifareTag.IDentifIEr

}

3.写入方法同上使用的tag需要为具体类型的tag,如:NFCmifareTag

[mifareTag writeNDEF:ndefMsg completionHandler:^(NSError * error) { }];

总结

以上是内存溢出为你收集整理的iOS NFC功能开发全部内容,希望文章能够帮你解决iOS NFC功能开发所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1018700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存