iOS 11을 사용하는 CoreNFC
작업 환경
샘플 코드
제작 과정이지만 실행되는 샘플 코드를 아래에 놓습니다.
https://github.com/bellx2/ios11NFCTest/
※ provisioning 파일을 설치해야 합니다.
설정 방법
CoreNFC를 사용하려면 다음과 같은 설정이 필요합니다.정식 버전이라면 다른 기능 확장과 마찬가지로 XCode의 Capabilities를 통해 설정하기만 하면 1.2가 필요 없다.
1. ADC 사이트에서 Provisioning 파일의 NFC Reading을 활성화합니다.
이 provosioning 파일을 사용합니다.
2. entitlements 파일에서 NFC 설정
<key>com.apple.developer.nfc.readersession.formats</key>
<array>
<string>NDEF</string>
</array>
entitlements 파일이 생성되지 않은 경우 Capabirities에서 "Siri"등을 선택하면 생성됩니다.
3.Info.plist에 NFFCReaderUsageDescription 추가 (대화상자에 표시)
<key>NFCReaderUsageDescription</key>
<string>NFCのカードをかざしてください</string>
4. 프로젝트에 CoreNFC 추가
프로그램 설명
N F C NDEFReader Session Delegate를 설정합니다.class ViewController: UIViewController, NFCNDEFReaderSessionDelegate{
....
}
NFC DEFReader Session을 생성합니다.invalidate AfterFirstRead를 가짜로 설정하면 NFC를 여러 번 읽습니다.만약 사실이라면 스캔을 한 번 하면 끝난다.let session:NFCNDEFReaderSession = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true)
session.begin()
begin () 시 대화상자가 나타나 읽기 모드로 들어갑니다.
값을 얻을 수 있다면, 데이터는readerSession (,didDetectNDEFs) 에서 되돌아옵니다.func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
for message in messages{
for payload in message.records {
print ("Payload Data: \(payload.payload)")
}
}
}
오류나 종료를 readerSession(didInvalidateWithError)이라고 합니다.func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
print("Error: \(error.localizedDescription)")
}
}
주의점
CoreNFC를 사용하려면 다음과 같은 설정이 필요합니다.정식 버전이라면 다른 기능 확장과 마찬가지로 XCode의 Capabilities를 통해 설정하기만 하면 1.2가 필요 없다.
1. ADC 사이트에서 Provisioning 파일의 NFC Reading을 활성화합니다.
이 provosioning 파일을 사용합니다.
2. entitlements 파일에서 NFC 설정
<key>com.apple.developer.nfc.readersession.formats</key>
<array>
<string>NDEF</string>
</array>
entitlements 파일이 생성되지 않은 경우 Capabirities에서 "Siri"등을 선택하면 생성됩니다.3.Info.plist에 NFFCReaderUsageDescription 추가 (대화상자에 표시)
<key>NFCReaderUsageDescription</key>
<string>NFCのカードをかざしてください</string>
4. 프로젝트에 CoreNFC 추가프로그램 설명
N F C NDEFReader Session Delegate를 설정합니다.class ViewController: UIViewController, NFCNDEFReaderSessionDelegate{
....
}
NFC DEFReader Session을 생성합니다.invalidate AfterFirstRead를 가짜로 설정하면 NFC를 여러 번 읽습니다.만약 사실이라면 스캔을 한 번 하면 끝난다.let session:NFCNDEFReaderSession = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true)
session.begin()
begin () 시 대화상자가 나타나 읽기 모드로 들어갑니다.
값을 얻을 수 있다면, 데이터는readerSession (,didDetectNDEFs) 에서 되돌아옵니다.func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
for message in messages{
for payload in message.records {
print ("Payload Data: \(payload.payload)")
}
}
}
오류나 종료를 readerSession(didInvalidateWithError)이라고 합니다.func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
print("Error: \(error.localizedDescription)")
}
}
주의점
class ViewController: UIViewController, NFCNDEFReaderSessionDelegate{
....
}
let session:NFCNDEFReaderSession = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true)
session.begin()
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
for message in messages{
for payload in message.records {
print ("Payload Data: \(payload.payload)")
}
}
}
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
print("Error: \(error.localizedDescription)")
}
}
기타 참조
https://stackoverflow.com/questions/44380305/ios-11-core-nfc-any-sample-code
http://nfcpy.readthedocs.io/en/latest/topics/ndef.html
Reference
이 문제에 관하여(iOS 11을 사용하는 CoreNFC), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bellx2/items/3498aa7637f96a966854텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)