- #import <CoreNFC/CoreNFC.h>
-
-
- @interface ViewController ()<NFCNDEFReaderSessionDelegate>
- @property (nonatomic,retain) UIButton *beginTestBtn;
- @property (nonatomic,retain) UILabel *textLabel;
- @end
-
- @implementation ViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
-
- _beginTestBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 50)];
- [_beginTestBtn setTitle:@"开始读取" forState:UIControlStateNormal];
- [_beginTestBtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
- _beginTestBtn.titleLabel.textAlignment = NSTextAlignmentLeft;
- [_beginTestBtn addTarget:self action:@selector(beginTestBtnAction) forControlEvents:UIControlEventTouchUpInside];
-
-
- _textLabel = [[UILabel alloc]initWithFrame:CGRectMake(120, 180, 200, 50)];
- _textLabel.text = @"待读取";
- _textLabel.textColor = [UIColor orangeColor];
- [self.view addSubview:_textLabel];
-
- NSLog(@"进入VC");
-
- [self.view addSubview:_beginTestBtn];
- [self.view addSubview:_textLabel];
-
-
- // Do any additional setup after loading the view, typically from a nib.
- }
- -(void)beginTestBtnAction
- {
-
- /**
- 三个参数
- 第一个参数:代理对象
- 第二个参数:线程
- 第三个参数:Session读取一个还是多个NDEF。YES:读取一个结束,NO:读取多个
- */
-
- NFCNDEFReaderSession *session = [[NFCNDEFReaderSession alloc] initWithDelegate:self queue:dispatch_queue_create(NULL, DISPATCH_QUEUE_CONCURRENT) invalidateAfterFirstRead:YES];
-
- [session beginSession];
-
- }
- /**
- 代理
- */
- - (void) readerSession:(nonnull NFCNDEFReaderSession *)session didDetectNDEFs:(nonnull NSArray<NFCNDEFMessage *> *)messages {
-
- __weak typeof(self) weakself=self;
- dispatch_async(dispatch_get_main_queue(), ^{
- weakself.textLabel.text = @"读取成功";
- });
-
- for (NFCNDEFMessage *message in messages) {
- for (NFCNDEFPayload *payload in message.records) {
- NSLog(@"Payload data:%@",payload.payload);
- }
- }
- }
- - (void)readerSession:(NFCNDEFReaderSession *)session didInvalidateWithError:(NSError *)error{
-
- NSLog(@"error:%@",error);
-
- __weak typeof(self) weakself=self;
- dispatch_async(dispatch_get_main_queue(), ^{
- weakself.textLabel.text = @"读取失败";
- });
-
-
- }