Test2ViewController.swift 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //
  2. // Test2ViewControllerSwift.swift
  3. // MCPlus
  4. //
  5. // Created by seo ha on 15/02/2019.
  6. // Copyright © 2019 KangSH. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. import CoreNFC
  11. @available(iOS 11.0, *)
  12. class Test2ViewController: UIViewController {
  13. @IBOutlet weak var scanButton:UIButton!{
  14. didSet{
  15. scanButton.addTapGestureRecognizer(action: self.scanAction)
  16. }
  17. }
  18. var reuseIdentifier:String?
  19. var detectedMessages:[NFCNDEFMessage]?
  20. var session:NFCNDEFReaderSession?
  21. var callBack:((String)->Void)?
  22. override func viewDidLoad() {
  23. super.viewDidLoad()
  24. print("start scan")
  25. }
  26. override func didReceiveMemoryWarning() {
  27. super.didReceiveMemoryWarning()
  28. }
  29. }
  30. @available(iOS 11.0, *)
  31. extension Test2ViewController{
  32. func scanAction(){
  33. print("start scan")
  34. self.session = NFCNDEFReaderSession(delegate: self, queue: DispatchQueue(label: "DISPATCH_QUEUE_CONCURRENT"), invalidateAfterFirstRead: false)
  35. session?.alertMessage = "Hold your iPhone near the item to learn more about it."
  36. session?.begin()
  37. }
  38. func stopScan(){
  39. session?.invalidate()
  40. }
  41. }
  42. @available(iOS 11.0, *)
  43. extension Test2ViewController:NFCNDEFReaderSessionDelegate{
  44. func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
  45. guard let tag = messages.first?.description else {
  46. return
  47. }
  48. print("tag: \(tag)")
  49. self.callBack?(tag)
  50. }
  51. func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
  52. }
  53. }