我刚在iPhone7上安装了iOS11 beta版本,我想试试NFC,但是我在设置里没有找到,谁能帮我举例说明怎么读取一个tag。谁能展示下如何在代码片段中使用CoreNFC SDK?
留言:
我试过了,但总意外回到NFC读取器失效错误会话就终止了。
根据Boris的建议,你要确定.plist文件和权限是正确设置的。
在苹果开发者的官网上,新建一个苹果ID并确保你的NFC Tag Reading是有效的。如图所示:
然后把下面这段放到.plist文件中。
NFCReaderUsageDescriptionWe are going to use you NFC!com.apple.developer.nfc.readersession.formats NDEF
在property list里应该是这样的↓↓:
NFCReaderUsageDescriptionWe are going to use you NFC!com.apple.developer.nfc.readersession.formats NDEF
导入CoreNFC:
#import
设置delegate:
@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]; }
在delegate callback中:
- (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); } } }
Boris: 你太棒了,我也成功了,出现了几分钟后就闪退了,然后重启App了,但至少能打开了。
要解决 这个问题把这个key
com.apple.developer.nfc.readersession.formats
加到授权文件。
Key应该与启用的nfs类型的数组相关联。例如,您可以将其添加到您的权限中。
com.apple.developer.nfc.readersession.formats NDEF
我成功了。你看:
留言:-谢谢啦!现在已经没有202报错了,但是程序会崩掉还出现这个:CoreNFC__CRASHING_DUE_TO_PRIVACY_VIOLATION__
你的info.plist里面有文件用法吗?
-有的
-有一个用法key,
NFCReaderUsageDescription
你需要确保文件用法已经到位,并在苹果开发者中心的应用中添加功能。根据我的经验我写了一个基于Swift4的教程。这里有CoreNFC教程。
原文地址:https://stackoverflow.com/questions/44380305/ios-11-core-nfc-any-sample-code
原创翻译,有问题希望提出和更正。