欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iphone如何使用CoreNFC

程序员文章站 2022-08-17 14:58:07
由于本人的工作和移动支付有关,所以一直对nfc技术比较关注。看到wwdc会议ios 11开放了corenfc,赶紧了解一下。 使用nfc前需要注意一下几点: 需要开启一个session,与其他s...

由于本人的工作和移动支付有关,所以一直对nfc技术比较关注。看到wwdc会议ios 11开放了corenfc,赶紧了解一下。

iphone如何使用CoreNFC

使用nfc前需要注意一下几点:

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

需要app完全在前台模式

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

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

隐私描述(后文会写到如何配置)会在扫描页面显示

在苹果开发者网站创建一个appid, 并且确保nfc tag reading有效。

iphone如何使用CoreNFC

在.plist文件中加入以下项

nfcreaderusagedescription  
we are going to use you nfc!  
com.apple.developer.nfc.readersession.formats  
      
        ndef  
      
iphone如何使用CoreNFC

导入framework

#import 

设置委托

@interface yourviewcontroller : uiviewcontroller   

编辑代码viewdidload

- (void)viewdidload {  
    [super viewdidload];  
    // do any additional setup after loading the view, typically from a nib.  
    nfcndefreadersession *session = [[nfcndefreadersession alloc] initwithdelegate:self queue:dispatch_queue_create(null, dispatch_queue_concurrent) invalidateafterfirstread:no];  
    [session beginsession];  
  
}  

委托方法

- (void) readersession:(nonnull nfcndefreadersession *)session diddetectndefs:(nonnull nsarray *)messages {  
  
    for (nfcndefmessage *message in messages) {  
        for (nfcndefpayload *payload in message.records) {  
            nslog(@"payload data:%@",payload.payload);  
        }  
    }          
}  

在授权文件中加入key

com.apple.developer.nfc.readersession.formats  
      
        ndef  
      
iphone如何使用CoreNFC

nfc tag淘宝上可以买到,挺便宜的。

android手机装个app往tag写入数据就可以开始测试了。

apple什么时候可以真正开放nfc的卡模拟方式就好了。只是开放读卡器模式应用场景还是太受限了。