Comment on page
React Native
Integration time — 9 minutes.
iOS 13+ (CoreNFC is required), Xcode 12.5.1+
SDK can be imported to a project with target version iOS 11, but it will be able to work only from iOS 13.
Android with minimal SDK version of 21 and a device with NFC support.
npm install tangem-sdk-react-native-new
Add the following intent filters and metadata tag to your app
AndroidManifest.xml
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED"/>
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_filter" />
Create the file
android/src/main/res/xml/nfc_tech_filter.xml
and add the following content:<resources>
<tech-list>
<tech>android.nfc.tech.IsoDep</tech>
<tech>android.nfc.tech.Ndef</tech>
<tech>android.nfc.tech.NfcV</tech>
</tech-list>
</resources>
Example AndroidManifest.xml
- 1.Add Swift Header Search Path to your app by following this steps:
- Open ios/YourAppName.xcodeproj in Xcode
- Right-click on Your App Name in the Project Navigator on the left, and click New File…
- Create a single empty Swift file to the project (make sure that Your App Name target is selected when adding)
- When Xcode asks, press Create Bridging Header and do not remove Swift file then.
- 2.As React Native trying to link against an older Swift runtime while targeting a newer version of the OS. We need to remove swift linking from our project to be able to compile the SDK. apply below changes on your IOS project file (
project.pbxproj
)LIBRARY_SEARCH_PATHS = ("\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",- "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"","\"$(inherited)\"",); - 3.Configure your app to detect NFC tags. Turn on Near Field Communication Tag Reading under the Capabilities tab for the project’s target (see Add a capability to a target).
- 4.Add the NFCReaderUsageDescription key as a string item to the Info.plist file. For the value, enter a string that describes the reason the app needs access to the device’s NFC reader:<key>NFCReaderUsageDescription</key><string>Some reason</string>
- 5.In the Info.plist file, add the list of the application identifiers supported in your app to the ISO7816 Select Identifiers (AIDs) information property list key. The AIDs of Tangem cards are:
A000000812010208
andD2760000850101
.<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key><array><string>A000000812010208</string><string>D2760000850101</string></array> - 6.To prevent customers from installing apps on a device that does not support the NFC capability, add the following to the Info.plist code (Optional):
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>nfc</string>
</array>
Last modified 2yr ago