簡體   English   中英

iOS 11 CoreNFC 如何檢查設備是否具有NFC功能?

[英]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框架:

核心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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM