[英]iOS 11 CoreNFC How To Check if device has NFC Capability?
如何檢測iPhone是否具備使用核心NFC框架提供的NFC芯片的能力?
我現在知道它只適用於 iPhone 7 和 7 plus,但我不想硬編碼硬件字符串標識符,因為我不知道將來會出現什么設備。
您可以使用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功能的設備才能從App Store下載我們的應用程序。
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
}
可以從 Apple https://developer.apple.com/support/required-device-capabilities/查看設備列表(很長,使用:cmd-f + "nfc")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.