IPhoneがコアNFCフレームワークによって提供されるNFCチップを使用できるかどうかをどのように検出しますか?
今のところ、iPhone7と7plusでのみ動作することはわかっていますが、将来どのデバイスが発売されるかわからないため、ハードウェア文字列識別子をハードコーディングしたくありません。
readingAvailable
クラスプロパティを使用できます。
if NFCNDEFReaderSession.readingAvailable {
// Set up the NFC session
} else {
// Provide fallback option
}
iOS 12のアップデート:
1)iPhone 7以降のモデルでのみアプリを実行する場合は、Info.plist
にNFC要件を追加できます:
<key>UIRequiredDeviceCapabilities</key>
<array>
// ... your restrictions
<string>nfc</string>
</array>
この要件により、NFCのデバイスのみがAppStoreからアプリをダウンロードできます。
2)iPhone 7より古いiPhoneおよびiPadのサポートについては、Core NFC
が含まれていないため、利用可能かどうかも確認する必要があります。デバイス。そのため、 弱いリンク を使用してCore NFC
フレームワークをリンクする必要があります。
次に、コードでCore NFC
の可用性を確認します。
var isNFCAvailable: Bool {
if NSClassFromString("NFCNDEFReaderSession") == nil { return false }
return NFCNDEFReaderSession.readingAvailable
}
isNFCAvailable
がtrue
を返す場合、アプリのクラッシュを心配することなく、Core NFC
が提供するすべてのAPIを使用できます。
IOS <11.0のデバイスも確認してください。 iPhone 5
import CoreNFC
.
.
// Check if NFC supported
if #available(iOS 11.0, *) {
if NFCNDEFReaderSession.readingAvailable {
// available
}
else {
// not
}
} else {
//iOS don't support
}