react-native-nfc-manager 4.0.0-beta.1 → 4.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -49
- package/android/src/main/java/community/revteltech/nfc/MifareClassicHandler.java +419 -0
- package/android/src/main/java/community/revteltech/nfc/MifareUltralightHandler.java +84 -0
- package/android/src/main/java/community/revteltech/nfc/NdefHandler.java +373 -0
- package/android/src/main/java/community/revteltech/nfc/NfcAdapterStateChangedReceiver.java +48 -0
- package/android/src/main/java/community/revteltech/nfc/NfcErrorCodes.java +16 -0
- package/android/src/main/java/community/revteltech/nfc/NfcManager.java +348 -1087
- package/android/src/main/java/community/revteltech/nfc/NfcManagerIOSStubBase.java +130 -0
- package/android/src/main/java/community/revteltech/nfc/NfcTechIoRouter.java +258 -0
- package/android/src/main/java/community/revteltech/nfc/TagTechnologyRequest.java +19 -7
- package/android/src/main/java/community/revteltech/nfc/Util.java +275 -2
- package/app.plugin.js +8 -9
- package/dist/ndef-lib/constants.js +67 -0
- package/dist/ndef-lib/constants.js.map +1 -0
- package/dist/ndef-lib/index.js +79 -0
- package/dist/ndef-lib/index.js.map +1 -0
- package/dist/ndef-lib/ndef-text.js +29 -0
- package/dist/ndef-lib/ndef-text.js.map +1 -0
- package/dist/ndef-lib/ndef-uri.js +40 -0
- package/dist/ndef-lib/ndef-uri.js.map +1 -0
- package/dist/ndef-lib/ndef-wifi-simple.js +100 -0
- package/dist/ndef-lib/ndef-wifi-simple.js.map +1 -0
- package/dist/ndef-lib/ndef.js +152 -0
- package/dist/ndef-lib/ndef.js.map +1 -0
- package/dist/ndef-lib/stringifier.js +155 -0
- package/dist/ndef-lib/stringifier.js.map +1 -0
- package/dist/ndef-lib/util.js +126 -0
- package/dist/ndef-lib/util.js.map +1 -0
- package/dist/specs/NativeNfcManager.js +5 -0
- package/dist/specs/NativeNfcManager.js.map +1 -0
- package/dist/src/NativeNfcManager.js +55 -0
- package/dist/src/NativeNfcManager.js.map +1 -0
- package/dist/src/NfcError.js +220 -0
- package/dist/src/NfcError.js.map +1 -0
- package/dist/src/NfcManager.js +175 -0
- package/dist/src/NfcManager.js.map +1 -0
- package/dist/src/NfcManagerAndroid.js +112 -0
- package/dist/src/NfcManagerAndroid.js.map +1 -0
- package/dist/src/NfcManagerIOS.js +119 -0
- package/dist/src/NfcManagerIOS.js.map +1 -0
- package/dist/src/NfcTech/Iso15693HandlerIOS.js +99 -0
- package/dist/src/NfcTech/Iso15693HandlerIOS.js.map +1 -0
- package/dist/src/NfcTech/IsoDepHandler.js +29 -0
- package/dist/src/NfcTech/IsoDepHandler.js.map +1 -0
- package/dist/src/NfcTech/MifareClassicHandlerAndroid.js +68 -0
- package/dist/src/NfcTech/MifareClassicHandlerAndroid.js.map +1 -0
- package/dist/src/NfcTech/MifareUltralightHandlerAndroid.js +23 -0
- package/dist/src/NfcTech/MifareUltralightHandlerAndroid.js.map +1 -0
- package/dist/src/NfcTech/NdefFormatableHandlerAndroid.js +16 -0
- package/dist/src/NfcTech/NdefFormatableHandlerAndroid.js.map +1 -0
- package/dist/src/NfcTech/NdefHandler.js +54 -0
- package/dist/src/NfcTech/NdefHandler.js.map +1 -0
- package/dist/src/NfcTech/NfcAHandler.js +16 -0
- package/dist/src/NfcTech/NfcAHandler.js.map +1 -0
- package/dist/src/NfcTech/NfcVHandler.js +33 -0
- package/dist/src/NfcTech/NfcVHandler.js.map +1 -0
- package/dist/src/index.js +53 -0
- package/dist/src/index.js.map +1 -0
- package/index.d.ts +110 -46
- package/ios/NfcManager.h +2 -11
- package/ios/NfcManager.mm +264 -438
- package/ios/RNNfcBridgeUtil.h +28 -0
- package/ios/RNNfcBridgeUtil.mm +52 -0
- package/ios/RNNfcManager+Felica.swift +61 -0
- package/ios/RNNfcManager+Iso15693.swift +895 -0
- package/ios/RNNfcManager+IsoDep.swift +145 -0
- package/ios/RNNfcManager+Mifare.swift +61 -0
- package/ios/RNNfcManager+Ndef.swift +120 -0
- package/ios/RNNfcManager.h +251 -0
- package/ios/RNNfcManager.swift +648 -0
- package/ios/RNNfcSessionDelegateProxy.swift +104 -0
- package/ios/RNNfcSwiftUtil.swift +34 -0
- package/ndef-lib/{constants.js → constants.ts} +2 -0
- package/ndef-lib/{index.js → index.ts} +23 -12
- package/ndef-lib/{ndef-text.js → ndef-text.ts} +7 -2
- package/ndef-lib/{ndef-uri.js → ndef-uri.ts} +8 -3
- package/ndef-lib/{ndef-wifi-simple.js → ndef-wifi-simple.ts} +34 -11
- package/ndef-lib/{ndef.js → ndef.ts} +53 -25
- package/ndef-lib/{stringifier.js → stringifier.ts} +27 -10
- package/ndef-lib/{util.js → util.ts} +13 -8
- package/package.json +42 -13
- package/react-native-nfc-manager.podspec +3 -2
- package/specs/NativeNfcManager.ts +18 -4
- package/src/NativeNfcManager.ts +84 -0
- package/src/{NfcError.js → NfcError.ts} +6 -17
- package/src/{NfcManager.js → NfcManager.ts} +51 -34
- package/src/{NfcManagerAndroid.js → NfcManagerAndroid.ts} +27 -8
- package/src/{NfcManagerIOS.js → NfcManagerIOS.ts} +31 -10
- package/src/NfcTech/{Iso15693HandlerIOS.js → Iso15693HandlerIOS.ts} +64 -36
- package/src/NfcTech/{IsoDepHandler.js → IsoDepHandler.ts} +8 -5
- package/src/NfcTech/{MifareClassicHandlerAndroid.js → MifareClassicHandlerAndroid.ts} +33 -24
- package/src/NfcTech/{MifareUltralightHandlerAndroid.js → MifareUltralightHandlerAndroid.ts} +14 -5
- package/src/NfcTech/{NdefFormatableHandlerAndroid.js → NdefFormatableHandlerAndroid.ts} +9 -2
- package/src/NfcTech/{NdefHandler.js → NdefHandler.ts} +19 -6
- package/src/NfcTech/{NfcAHandler.js → NfcAHandler.ts} +6 -3
- package/src/NfcTech/{NfcVHandler.js → NfcVHandler.ts} +8 -5
- package/src/__mocks__/{NativeNfcManager.js → NativeNfcManager.ts} +4 -1
- package/src/{index.js → index.ts} +1 -1
- package/android/src/main/java/community/revteltech/nfc/JsonConvert.java +0 -141
- package/android/src/main/java/community/revteltech/nfc/MifareUtil.java +0 -84
- package/ios/NfcManager+Felica.mm +0 -43
- package/ios/NfcManager+Iso15693.mm +0 -600
- package/ios/NfcManager+IsoDep.mm +0 -83
- package/ios/NfcManager+Mifare.mm +0 -43
- package/ios/Util.mm +0 -55
- package/specs/NativeNfcManager.d.ts +0 -6
- package/specs/NativeNfcManager.js +0 -3
- package/specs/NativeNfcManager.js.map +0 -1
- package/src/NativeNfcManager.js +0 -37
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
|
|
3
|
+
#if __has_include(<React/RCTBridgeModule.h>)
|
|
4
|
+
#import <React/RCTBridgeModule.h>
|
|
5
|
+
#elif __has_include("React/RCTBridgeModule.h")
|
|
6
|
+
#import "React/RCTBridgeModule.h"
|
|
7
|
+
#else
|
|
8
|
+
#import "RCTBridgeModule.h"
|
|
9
|
+
#endif
|
|
10
|
+
|
|
11
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
12
|
+
|
|
13
|
+
typedef void (^RNNfcEventEmitterBlock)(NSString *name, id _Nullable body);
|
|
14
|
+
|
|
15
|
+
@interface RNNfcBridgeUtil : NSObject
|
|
16
|
+
|
|
17
|
+
+ (void)setEventEmitter:(RNNfcEventEmitterBlock _Nullable)eventEmitter;
|
|
18
|
+
|
|
19
|
+
+ (void)sendResultToCallback:(RCTResponseSenderBlock)callback
|
|
20
|
+
error:(NSError * _Nullable)error
|
|
21
|
+
payload:(id _Nullable)payload;
|
|
22
|
+
|
|
23
|
+
+ (void)emitEvent:(NSString *)name
|
|
24
|
+
body:(id _Nullable)body;
|
|
25
|
+
|
|
26
|
+
@end
|
|
27
|
+
|
|
28
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#import "RNNfcBridgeUtil.h"
|
|
2
|
+
|
|
3
|
+
@implementation RNNfcBridgeUtil
|
|
4
|
+
|
|
5
|
+
static RNNfcEventEmitterBlock sEventEmitter = nil;
|
|
6
|
+
|
|
7
|
+
static NSString *RNNfcErrorMessageFromError(NSError *error)
|
|
8
|
+
{
|
|
9
|
+
NSError *underlyingError = error.userInfo[NSUnderlyingErrorKey];
|
|
10
|
+
if (underlyingError != nil) {
|
|
11
|
+
return [NSString stringWithFormat:@"%@:%ld,%@:%ld",
|
|
12
|
+
error.domain,
|
|
13
|
+
(long)error.code,
|
|
14
|
+
underlyingError.domain,
|
|
15
|
+
(long)underlyingError.code];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return [NSString stringWithFormat:@"%@:%ld", error.domain, (long)error.code];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
+ (void)setEventEmitter:(RNNfcEventEmitterBlock _Nullable)eventEmitter
|
|
22
|
+
{
|
|
23
|
+
sEventEmitter = [eventEmitter copy];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
+ (void)sendResultToCallback:(RCTResponseSenderBlock)callback
|
|
27
|
+
error:(NSError * _Nullable)error
|
|
28
|
+
payload:(id _Nullable)payload
|
|
29
|
+
{
|
|
30
|
+
if (error) {
|
|
31
|
+
callback(@[RNNfcErrorMessageFromError(error), [NSNull null]]);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (payload != nil) {
|
|
36
|
+
callback(@[[NSNull null], payload]);
|
|
37
|
+
} else {
|
|
38
|
+
callback(@[]);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
+ (void)emitEvent:(NSString *)name
|
|
43
|
+
body:(id _Nullable)body
|
|
44
|
+
{
|
|
45
|
+
if (sEventEmitter == nil) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
sEventEmitter(name, body);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import CoreNFC
|
|
2
|
+
import Foundation
|
|
3
|
+
|
|
4
|
+
public extension RNNfcManager {
|
|
5
|
+
@objc(sendFelicaCommand:callback:)
|
|
6
|
+
static func sendFelicaCommand(
|
|
7
|
+
_ bytes: [NSNumber],
|
|
8
|
+
callback: @escaping RNNfcResponseSenderBlock
|
|
9
|
+
) {
|
|
10
|
+
forwardWithTagSessionSupport(
|
|
11
|
+
isTagSessionSupported(),
|
|
12
|
+
callback: callback,
|
|
13
|
+
operation: { tagSession in
|
|
14
|
+
sendFelicaCommand(with: tagSession, bytes: bytes) { response, error in
|
|
15
|
+
if let error {
|
|
16
|
+
callback([RNNfcSwiftUtil.errorMessage(from: error as NSError), NSNull()])
|
|
17
|
+
return
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
callback([NSNull(), response ?? []])
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@objc(sendFelicaCommandWithSession:bytes:completion:)
|
|
27
|
+
static func sendFelicaCommand(
|
|
28
|
+
with session: NFCTagReaderSession,
|
|
29
|
+
bytes: [NSNumber],
|
|
30
|
+
completion: @escaping RNNfcDataResultBlock
|
|
31
|
+
) {
|
|
32
|
+
guard let connectedTag = session.connectedTag else {
|
|
33
|
+
completion(nil, NSError(domain: "RNNfcTechSwiftService", code: 1, userInfo: [NSLocalizedDescriptionKey: "Not connected"]))
|
|
34
|
+
return
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
let felicaTag = extractFelicaTag(from: connectedTag)
|
|
38
|
+
guard let felicaTag else {
|
|
39
|
+
completion(nil, NSError(domain: "RNNfcTechSwiftService", code: 3, userInfo: [NSLocalizedDescriptionKey: "not a felica tag"]))
|
|
40
|
+
return
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
let data = RNNfcSwiftUtil.data(from: bytes)
|
|
44
|
+
NSLog("input bytes: %@", RNNfcSwiftUtil.hexString(from: data))
|
|
45
|
+
felicaTag.sendFeliCaCommand(commandPacket: data) { response, error in
|
|
46
|
+
if let error {
|
|
47
|
+
completion(nil, error as NSError)
|
|
48
|
+
return
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
completion(RNNfcSwiftUtil.numberArray(from: response), nil)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
private static func extractFelicaTag(from connectedTag: NFCTag) -> NFCFeliCaTag? {
|
|
56
|
+
if case let .feliCa(tag) = connectedTag {
|
|
57
|
+
return tag
|
|
58
|
+
}
|
|
59
|
+
return nil
|
|
60
|
+
}
|
|
61
|
+
}
|