react-native-nfc-manager 4.0.0-beta.1 → 4.0.0-beta.11

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.
Files changed (109) hide show
  1. package/README.md +146 -49
  2. package/android/src/main/java/community/revteltech/nfc/MifareClassicHandler.java +419 -0
  3. package/android/src/main/java/community/revteltech/nfc/MifareUltralightHandler.java +84 -0
  4. package/android/src/main/java/community/revteltech/nfc/NdefHandler.java +397 -0
  5. package/android/src/main/java/community/revteltech/nfc/NfcAdapterStateChangedReceiver.java +48 -0
  6. package/android/src/main/java/community/revteltech/nfc/NfcErrorCodes.java +16 -0
  7. package/android/src/main/java/community/revteltech/nfc/NfcManager.java +348 -1087
  8. package/android/src/main/java/community/revteltech/nfc/NfcManagerIOSStubBase.java +130 -0
  9. package/android/src/main/java/community/revteltech/nfc/NfcTechIoRouter.java +258 -0
  10. package/android/src/main/java/community/revteltech/nfc/TagTechnologyRequest.java +19 -7
  11. package/android/src/main/java/community/revteltech/nfc/Util.java +275 -2
  12. package/app.plugin.js +8 -9
  13. package/dist/ndef-lib/constants.js +67 -0
  14. package/dist/ndef-lib/constants.js.map +1 -0
  15. package/dist/ndef-lib/index.js +79 -0
  16. package/dist/ndef-lib/index.js.map +1 -0
  17. package/dist/ndef-lib/ndef-text.js +29 -0
  18. package/dist/ndef-lib/ndef-text.js.map +1 -0
  19. package/dist/ndef-lib/ndef-uri.js +40 -0
  20. package/dist/ndef-lib/ndef-uri.js.map +1 -0
  21. package/dist/ndef-lib/ndef-wifi-simple.js +100 -0
  22. package/dist/ndef-lib/ndef-wifi-simple.js.map +1 -0
  23. package/dist/ndef-lib/ndef.js +152 -0
  24. package/dist/ndef-lib/ndef.js.map +1 -0
  25. package/dist/ndef-lib/stringifier.js +155 -0
  26. package/dist/ndef-lib/stringifier.js.map +1 -0
  27. package/dist/ndef-lib/util.js +134 -0
  28. package/dist/ndef-lib/util.js.map +1 -0
  29. package/dist/specs/NativeNfcManager.js +5 -0
  30. package/dist/specs/NativeNfcManager.js.map +1 -0
  31. package/dist/src/NativeNfcManager.js +55 -0
  32. package/dist/src/NativeNfcManager.js.map +1 -0
  33. package/dist/src/NfcError.js +220 -0
  34. package/dist/src/NfcError.js.map +1 -0
  35. package/dist/src/NfcManager.js +175 -0
  36. package/dist/src/NfcManager.js.map +1 -0
  37. package/dist/src/NfcManagerAndroid.js +112 -0
  38. package/dist/src/NfcManagerAndroid.js.map +1 -0
  39. package/dist/src/NfcManagerIOS.js +119 -0
  40. package/dist/src/NfcManagerIOS.js.map +1 -0
  41. package/dist/src/NfcTech/Iso15693HandlerIOS.js +99 -0
  42. package/dist/src/NfcTech/Iso15693HandlerIOS.js.map +1 -0
  43. package/dist/src/NfcTech/IsoDepHandler.js +29 -0
  44. package/dist/src/NfcTech/IsoDepHandler.js.map +1 -0
  45. package/dist/src/NfcTech/MifareClassicHandlerAndroid.js +68 -0
  46. package/dist/src/NfcTech/MifareClassicHandlerAndroid.js.map +1 -0
  47. package/dist/src/NfcTech/MifareUltralightHandlerAndroid.js +23 -0
  48. package/dist/src/NfcTech/MifareUltralightHandlerAndroid.js.map +1 -0
  49. package/dist/src/NfcTech/NdefFormatableHandlerAndroid.js +16 -0
  50. package/dist/src/NfcTech/NdefFormatableHandlerAndroid.js.map +1 -0
  51. package/dist/src/NfcTech/NdefHandler.js +54 -0
  52. package/dist/src/NfcTech/NdefHandler.js.map +1 -0
  53. package/dist/src/NfcTech/NfcAHandler.js +16 -0
  54. package/dist/src/NfcTech/NfcAHandler.js.map +1 -0
  55. package/dist/src/NfcTech/NfcVHandler.js +33 -0
  56. package/dist/src/NfcTech/NfcVHandler.js.map +1 -0
  57. package/dist/src/index.js +53 -0
  58. package/dist/src/index.js.map +1 -0
  59. package/index.d.ts +110 -46
  60. package/ios/NfcManager.h +2 -11
  61. package/ios/NfcManager.mm +264 -438
  62. package/ios/RNNfcBridgeUtil.h +28 -0
  63. package/ios/RNNfcBridgeUtil.mm +52 -0
  64. package/ios/RNNfcManager+Felica.swift +61 -0
  65. package/ios/RNNfcManager+Iso15693.swift +895 -0
  66. package/ios/RNNfcManager+IsoDep.swift +145 -0
  67. package/ios/RNNfcManager+Mifare.swift +61 -0
  68. package/ios/RNNfcManager+Ndef.swift +120 -0
  69. package/ios/RNNfcManager.h +251 -0
  70. package/ios/RNNfcManager.swift +648 -0
  71. package/ios/RNNfcSessionDelegateProxy.swift +104 -0
  72. package/ios/RNNfcSwiftUtil.swift +34 -0
  73. package/ndef-lib/{constants.js → constants.ts} +2 -0
  74. package/ndef-lib/{index.js → index.ts} +23 -12
  75. package/ndef-lib/{ndef-text.js → ndef-text.ts} +7 -2
  76. package/ndef-lib/{ndef-uri.js → ndef-uri.ts} +8 -3
  77. package/ndef-lib/{ndef-wifi-simple.js → ndef-wifi-simple.ts} +34 -11
  78. package/ndef-lib/{ndef.js → ndef.ts} +53 -25
  79. package/ndef-lib/{stringifier.js → stringifier.ts} +27 -10
  80. package/ndef-lib/{util.js → util.ts} +23 -9
  81. package/package.json +39 -21
  82. package/react-native-nfc-manager.podspec +3 -2
  83. package/specs/NativeNfcManager.ts +18 -4
  84. package/src/NativeNfcManager.ts +84 -0
  85. package/src/{NfcError.js → NfcError.ts} +6 -17
  86. package/src/{NfcManager.js → NfcManager.ts} +51 -34
  87. package/src/{NfcManagerAndroid.js → NfcManagerAndroid.ts} +27 -8
  88. package/src/{NfcManagerIOS.js → NfcManagerIOS.ts} +31 -10
  89. package/src/NfcTech/{Iso15693HandlerIOS.js → Iso15693HandlerIOS.ts} +64 -36
  90. package/src/NfcTech/{IsoDepHandler.js → IsoDepHandler.ts} +8 -5
  91. package/src/NfcTech/{MifareClassicHandlerAndroid.js → MifareClassicHandlerAndroid.ts} +33 -24
  92. package/src/NfcTech/{MifareUltralightHandlerAndroid.js → MifareUltralightHandlerAndroid.ts} +14 -5
  93. package/src/NfcTech/{NdefFormatableHandlerAndroid.js → NdefFormatableHandlerAndroid.ts} +9 -2
  94. package/src/NfcTech/{NdefHandler.js → NdefHandler.ts} +19 -6
  95. package/src/NfcTech/{NfcAHandler.js → NfcAHandler.ts} +6 -3
  96. package/src/NfcTech/{NfcVHandler.js → NfcVHandler.ts} +8 -5
  97. package/src/__mocks__/{NativeNfcManager.js → NativeNfcManager.ts} +4 -1
  98. package/src/{index.js → index.ts} +1 -1
  99. package/android/src/main/java/community/revteltech/nfc/JsonConvert.java +0 -141
  100. package/android/src/main/java/community/revteltech/nfc/MifareUtil.java +0 -84
  101. package/ios/NfcManager+Felica.mm +0 -43
  102. package/ios/NfcManager+Iso15693.mm +0 -600
  103. package/ios/NfcManager+IsoDep.mm +0 -83
  104. package/ios/NfcManager+Mifare.mm +0 -43
  105. package/ios/Util.mm +0 -55
  106. package/specs/NativeNfcManager.d.ts +0 -6
  107. package/specs/NativeNfcManager.js +0 -3
  108. package/specs/NativeNfcManager.js.map +0 -1
  109. 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
+ }