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.
- 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 +397 -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 +134 -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} +23 -9
- package/package.json +39 -21
- 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
package/ios/NfcManager.mm
CHANGED
|
@@ -3,18 +3,14 @@
|
|
|
3
3
|
#import "React/RCTConvert.h"
|
|
4
4
|
#import "React/RCTEventDispatcher.h"
|
|
5
5
|
#import "React/RCTLog.h"
|
|
6
|
+
#import "RNNfcBridgeUtil.h"
|
|
7
|
+
#import "RNNfcManager.h"
|
|
6
8
|
|
|
7
9
|
@implementation NfcManager {
|
|
8
|
-
NSDictionary *nfcTechTypes;
|
|
9
|
-
NSArray *techRequestTypes;
|
|
10
|
-
RCTResponseSenderBlock techRequestCallback;
|
|
11
10
|
}
|
|
12
11
|
|
|
13
12
|
RCT_EXPORT_MODULE()
|
|
14
13
|
|
|
15
|
-
@synthesize session;
|
|
16
|
-
@synthesize tagSession;
|
|
17
|
-
|
|
18
14
|
static NSString *const kBgNfcTagNotification = @"RNBgNfcTagNotification";
|
|
19
15
|
NSArray * bgNdefRecords = nil;
|
|
20
16
|
|
|
@@ -30,7 +26,7 @@ continueUserActivity:(NSUserActivity *)userActivity
|
|
|
30
26
|
if (@available(iOS 12.0, *)) {
|
|
31
27
|
NFCNDEFMessage * ndefMessage = userActivity.ndefMessagePayload;
|
|
32
28
|
if (ndefMessage != nil) {
|
|
33
|
-
bgNdefRecords = [
|
|
29
|
+
bgNdefRecords = [RNNfcManager convertNdefMessage:ndefMessage];
|
|
34
30
|
[[NSNotificationCenter defaultCenter] postNotificationName:kBgNfcTagNotification
|
|
35
31
|
object:self
|
|
36
32
|
userInfo:nil];
|
|
@@ -42,41 +38,56 @@ continueUserActivity:(NSUserActivity *)userActivity
|
|
|
42
38
|
|
|
43
39
|
- (void)handleBgNfcTagNotification:(NSNotification *)notification
|
|
44
40
|
{
|
|
45
|
-
[
|
|
46
|
-
|
|
41
|
+
[RNNfcBridgeUtil emitEvent:@"NfcManagerDiscoverBackgroundTag"
|
|
42
|
+
body:@{@"ndefMessage": bgNdefRecords}];
|
|
47
43
|
}
|
|
48
44
|
|
|
49
45
|
- (instancetype)init
|
|
50
46
|
{
|
|
51
47
|
if (self = [super init]) {
|
|
52
48
|
NSLog(@"NfcManager created");
|
|
49
|
+
__weak NfcManager *weakSelf = self;
|
|
50
|
+
[RNNfcBridgeUtil setEventEmitter:^(NSString *name, id body) {
|
|
51
|
+
NfcManager *strongSelf = weakSelf;
|
|
52
|
+
if (strongSelf == nil) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
56
|
+
if ([name isEqualToString:@"NfcManagerDiscoverTag"]) {
|
|
57
|
+
[strongSelf emitOnDiscoverTag:(NSDictionary *)body];
|
|
58
|
+
} else if ([name isEqualToString:@"NfcManagerDiscoverBackgroundTag"]) {
|
|
59
|
+
[strongSelf emitOnDiscoverBackgroundTag:(NSDictionary *)body];
|
|
60
|
+
} else if ([name isEqualToString:@"NfcManagerSessionClosed"]) {
|
|
61
|
+
[strongSelf emitOnSessionClosed:(NSDictionary *)body];
|
|
62
|
+
}
|
|
63
|
+
#else
|
|
64
|
+
[strongSelf sendEventWithName:name body:body];
|
|
65
|
+
#endif
|
|
66
|
+
}];
|
|
53
67
|
[[NSNotificationCenter defaultCenter] addObserver:self
|
|
54
68
|
selector:@selector(handleBgNfcTagNotification:)
|
|
55
69
|
name:kBgNfcTagNotification
|
|
56
70
|
object:nil];
|
|
57
71
|
}
|
|
58
72
|
|
|
59
|
-
if (@available(iOS 13.0, *)) {
|
|
60
|
-
nfcTechTypes = @{
|
|
61
|
-
[NSNumber numberWithInt: NFCTagTypeMiFare]: @"mifare",
|
|
62
|
-
[NSNumber numberWithInt: NFCTagTypeFeliCa]: @"felica",
|
|
63
|
-
[NSNumber numberWithInt: NFCTagTypeISO15693]: @"iso15693",
|
|
64
|
-
// compatible with Android
|
|
65
|
-
[NSNumber numberWithInt: NFCTagTypeISO7816Compatible]: @"IsoDep",
|
|
66
|
-
};
|
|
67
|
-
} else {
|
|
68
|
-
nfcTechTypes = nil;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
73
|
return self;
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
- (void)reset
|
|
75
77
|
{
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
[RNNfcManager invalidateRuntimeState];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
- (void)invalidate
|
|
82
|
+
{
|
|
83
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self
|
|
84
|
+
name:kBgNfcTagNotification
|
|
85
|
+
object:nil];
|
|
86
|
+
[RNNfcBridgeUtil setEventEmitter:nil];
|
|
87
|
+
[RNNfcManager invalidateRuntimeState];
|
|
88
|
+
#ifndef RCT_NEW_ARCH_ENABLED
|
|
89
|
+
[super invalidate];
|
|
90
|
+
#endif
|
|
80
91
|
}
|
|
81
92
|
|
|
82
93
|
- (NSArray<NSString *> *)supportedEvents
|
|
@@ -88,155 +99,25 @@ continueUserActivity:(NSUserActivity *)userActivity
|
|
|
88
99
|
];
|
|
89
100
|
}
|
|
90
101
|
|
|
91
|
-
+ (
|
|
102
|
+
+ (BOOL)requiresMainQueueSetup
|
|
92
103
|
{
|
|
93
|
-
return
|
|
94
|
-
@"id": dataToArray([record identifier]),
|
|
95
|
-
@"payload": dataToArray([record payload]),
|
|
96
|
-
@"type": dataToArray([record type]),
|
|
97
|
-
@"tnf": [NSNumber numberWithInt:[record typeNameFormat]]
|
|
98
|
-
};
|
|
104
|
+
return YES;
|
|
99
105
|
}
|
|
100
106
|
|
|
101
|
-
|
|
107
|
+
- (dispatch_queue_t)methodQueue
|
|
102
108
|
{
|
|
103
|
-
|
|
104
|
-
NSMutableArray *resultArray = [NSMutableArray arrayWithCapacity: [records count]];
|
|
105
|
-
for (int i = 0; i < [records count]; i++) {
|
|
106
|
-
[resultArray addObject:[self convertNdefRecord: records[i]]];
|
|
107
|
-
}
|
|
108
|
-
return resultArray;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
- (NSString*)getRNTechName:(id<NFCTag>)tag {
|
|
112
|
-
NSString * tech = [nfcTechTypes objectForKey:[NSNumber numberWithInt:(int)tag.type]];
|
|
113
|
-
if (tech == nil) {
|
|
114
|
-
tech = @"unknown";
|
|
115
|
-
}
|
|
116
|
-
return tech;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
- (NSDictionary*)getRNTag:(id<NFCTag>)tag {
|
|
120
|
-
NSMutableDictionary *tagInfo = @{}.mutableCopy;
|
|
121
|
-
NSString* tech = [self getRNTechName:tag];
|
|
122
|
-
[tagInfo setObject:tech forKey:@"tech"];
|
|
123
|
-
|
|
124
|
-
if (@available(iOS 13.0, *)) {
|
|
125
|
-
if (tag.type == NFCTagTypeMiFare) {
|
|
126
|
-
id<NFCMiFareTag> mifareTag = [tag asNFCMiFareTag];
|
|
127
|
-
[tagInfo setObject:getHexString(mifareTag.identifier) forKey:@"id"];
|
|
128
|
-
} else if (tag.type == NFCTagTypeISO7816Compatible) {
|
|
129
|
-
id<NFCISO7816Tag> iso7816Tag = [tag asNFCISO7816Tag];
|
|
130
|
-
[tagInfo setObject:getHexString(iso7816Tag.identifier) forKey:@"id"];
|
|
131
|
-
[tagInfo setObject:iso7816Tag.initialSelectedAID forKey:@"initialSelectedAID"];
|
|
132
|
-
[tagInfo setObject:dataToArray(iso7816Tag.historicalBytes) forKey:@"historicalBytes"];
|
|
133
|
-
[tagInfo setObject:dataToArray(iso7816Tag.applicationData) forKey:@"applicationData"];
|
|
134
|
-
} else if (tag.type == NFCTagTypeISO15693) {
|
|
135
|
-
id<NFCISO15693Tag> iso15693Tag = [tag asNFCISO15693Tag];
|
|
136
|
-
[tagInfo setObject:getHexString(iso15693Tag.identifier) forKey:@"id"];
|
|
137
|
-
[tagInfo setObject:[NSNumber numberWithUnsignedInteger:iso15693Tag.icManufacturerCode] forKey:@"icManufacturerCode"];
|
|
138
|
-
[tagInfo setObject:dataToArray(iso15693Tag.icSerialNumber) forKey:@"icSerialNumber"];
|
|
139
|
-
} else if (tag.type == NFCTagTypeFeliCa) {
|
|
140
|
-
id<NFCFeliCaTag> felicaTag = [tag asNFCFeliCaTag];
|
|
141
|
-
[tagInfo setObject:getHexString(felicaTag.currentIDm) forKey:@"idm"];
|
|
142
|
-
[tagInfo setObject:getHexString(felicaTag.currentSystemCode) forKey:@"systemCode"];
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return tagInfo;
|
|
109
|
+
return dispatch_get_main_queue();
|
|
147
110
|
}
|
|
148
111
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// all following types inherite from NFCNDEFTag
|
|
152
|
-
if (tag.type == NFCTagTypeMiFare) {
|
|
153
|
-
return [tag asNFCMiFareTag];
|
|
154
|
-
} else if (tag.type == NFCTagTypeISO7816Compatible) {
|
|
155
|
-
return [tag asNFCISO7816Tag];
|
|
156
|
-
} else if (tag.type == NFCTagTypeISO15693) {
|
|
157
|
-
return [tag asNFCISO15693Tag];
|
|
158
|
-
} else if (tag.type == NFCTagTypeFeliCa) {
|
|
159
|
-
return [tag asNFCFeliCaTag];
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
return nil;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
- (void)readerSession:(NFCNDEFReaderSession *)session didDetectNDEFs:(NSArray<NFCNDEFMessage *> *)messages
|
|
112
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
113
|
+
- (void)addListener:(NSString *)eventName
|
|
166
114
|
{
|
|
167
|
-
NSLog(@"readerSession:didDetectNDEFs");
|
|
168
|
-
if ([messages count] > 0) {
|
|
169
|
-
// parse the first message for now
|
|
170
|
-
[self sendEventWithName:@"NfcManagerDiscoverTag"
|
|
171
|
-
body:@{@"ndefMessage": [NfcManager convertNdefMessage:messages[0]]}];
|
|
172
|
-
} else {
|
|
173
|
-
[self sendEventWithName:@"NfcManagerDiscoverTag"
|
|
174
|
-
body:@{@"ndefMessage": @[]}];
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
- (void)readerSession:(NFCNDEFReaderSession *)session didInvalidateWithError:(NSError *)error
|
|
179
|
-
{
|
|
180
|
-
NSLog(@"readerSession:didInvalidateWithError: (%@)", [error localizedDescription]);
|
|
181
|
-
[self reset];
|
|
182
|
-
[self sendEventWithName:@"NfcManagerSessionClosed"
|
|
183
|
-
body:@{@"error": getErrorMessage(error)}];
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
- (void)tagReaderSession:(NFCTagReaderSession *)session didDetectTags:(NSArray<__kindof id<NFCTag>> *)tags
|
|
187
|
-
API_AVAILABLE(ios(13.0)) {
|
|
188
|
-
NSLog(@"NFCTag didDetectTags");
|
|
189
|
-
if (techRequestCallback != nil) {
|
|
190
|
-
for (id<NFCTag> tag in tags) {
|
|
191
|
-
NSString * tagType = [self getRNTechName:tag];
|
|
192
|
-
|
|
193
|
-
for (NSString* requestType in techRequestTypes) {
|
|
194
|
-
// here we treat Ndef is a special case, because all specific tech types
|
|
195
|
-
// inherites from NFCNDEFTag, so we simply allow it to connect
|
|
196
|
-
if ([tagType isEqualToString:requestType] || [requestType isEqualToString:@"Ndef"]) {
|
|
197
|
-
RCTResponseSenderBlock pendingCallback = techRequestCallback;
|
|
198
|
-
|
|
199
|
-
[tagSession connectToTag:tag
|
|
200
|
-
completionHandler:^(NSError *error) {
|
|
201
|
-
if (error != nil) {
|
|
202
|
-
NSLog(@"NFCTag restarting polling");
|
|
203
|
-
[self->tagSession restartPolling];
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
self->techRequestCallback = nil;
|
|
208
|
-
|
|
209
|
-
pendingCallback(@[[NSNull null], requestType]);
|
|
210
|
-
}];
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
115
|
}
|
|
217
116
|
|
|
218
|
-
- (void)
|
|
219
|
-
API_AVAILABLE(ios(13.0)) {
|
|
220
|
-
NSLog(@"NFCTag didInvalidateWithError");
|
|
221
|
-
if (techRequestCallback) {
|
|
222
|
-
techRequestCallback(@[getErrorMessage(error)]);
|
|
223
|
-
techRequestCallback = nil;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
[self reset];
|
|
227
|
-
[self sendEventWithName:@"NfcManagerSessionClosed"
|
|
228
|
-
body:@{@"error": getErrorMessage(error)}];
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
- (void)tagReaderSessionDidBecomeActive:(NFCTagReaderSession *)session
|
|
232
|
-
API_AVAILABLE(ios(13.0)) {
|
|
233
|
-
NSLog(@"NFCTag didBecomeActive");
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
+ (BOOL)requiresMainQueueSetup
|
|
117
|
+
- (void)removeListeners:(double)count
|
|
237
118
|
{
|
|
238
|
-
return YES;
|
|
239
119
|
}
|
|
120
|
+
#endif
|
|
240
121
|
|
|
241
122
|
- (void)getBackgroundTag: (nonnull RCTResponseSenderBlock)callback
|
|
242
123
|
{
|
|
@@ -256,341 +137,202 @@ continueUserActivity:(NSUserActivity *)userActivity
|
|
|
256
137
|
|
|
257
138
|
- (void)isSupported: (NSString *)tech callback:(nonnull RCTResponseSenderBlock)callback
|
|
258
139
|
{
|
|
259
|
-
|
|
260
|
-
if (@available(iOS 11.0, *)) {
|
|
261
|
-
callback(@[[NSNull null], NFCNDEFReaderSession.readingAvailable ? @YES : @NO]);
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
} else if ([tech isEqualToString:@"mifare"] || [tech isEqualToString:@"felica"] || [tech isEqualToString:@"iso15693"] || [tech isEqualToString:@"IsoDep"]) {
|
|
265
|
-
if (@available(iOS 13.0, *)) {
|
|
266
|
-
callback(@[[NSNull null], NFCTagReaderSession.readingAvailable ? @YES : @NO]);
|
|
267
|
-
return;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
callback(@[[NSNull null], @NO]);
|
|
140
|
+
[RNNfcManager isSupported:tech callback:callback];
|
|
272
141
|
}
|
|
273
142
|
|
|
274
143
|
- (void)start: (nonnull RCTResponseSenderBlock)callback
|
|
275
144
|
{
|
|
276
|
-
|
|
277
|
-
if (NFCNDEFReaderSession.readingAvailable) {
|
|
278
|
-
NSLog(@"NfcManager initialized");
|
|
279
|
-
[self reset];
|
|
280
|
-
callback(@[]);
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
145
|
+
[RNNfcManager startWithCallback:callback];
|
|
286
146
|
}
|
|
287
147
|
|
|
288
148
|
-(void)requestTechnology: (NSArray *)techs options: (NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
289
149
|
{
|
|
290
|
-
|
|
291
|
-
if (tagSession == nil && session == nil) {
|
|
292
|
-
NFCPollingOption pollFlags = NFCPollingISO14443 | NFCPollingISO15693;
|
|
293
|
-
if ([techs containsObject:@"felica"]) {
|
|
294
|
-
pollFlags |= NFCPollingISO18092;
|
|
295
|
-
}
|
|
296
|
-
tagSession = [[NFCTagReaderSession alloc]
|
|
297
|
-
initWithPollingOption:pollFlags delegate:self queue:dispatch_get_main_queue()];
|
|
298
|
-
tagSession.alertMessage = [options objectForKey:@"alertMessage"];
|
|
299
|
-
[tagSession beginSession];
|
|
300
|
-
techRequestTypes = techs;
|
|
301
|
-
techRequestCallback = callback;
|
|
302
|
-
} else {
|
|
303
|
-
callback(@[@"Duplicated registration", [NSNull null]]);
|
|
304
|
-
}
|
|
305
|
-
} else {
|
|
306
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
307
|
-
}
|
|
150
|
+
[RNNfcManager createAndBeginTagSessionWithTechs:techs options:options callback:callback];
|
|
308
151
|
}
|
|
309
152
|
|
|
310
153
|
- (void)restartTechnologyRequest:(nonnull RCTResponseSenderBlock)callback
|
|
311
154
|
{
|
|
312
|
-
|
|
313
|
-
if (tagSession != nil) {
|
|
314
|
-
NSLog(@"NfcManager restarting polling");
|
|
315
|
-
[self->tagSession restartPolling];
|
|
316
|
-
techRequestCallback = callback;
|
|
317
|
-
} else {
|
|
318
|
-
callback(@[@"No active registration", [NSNull null]]);
|
|
319
|
-
}
|
|
320
|
-
} else {
|
|
321
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
322
|
-
}
|
|
155
|
+
[RNNfcManager restartTechnologyRequestWithCallback:callback];
|
|
323
156
|
}
|
|
324
157
|
|
|
325
158
|
- (void)cancelTechnologyRequest:(nonnull RCTResponseSenderBlock)callback
|
|
326
159
|
{
|
|
327
|
-
|
|
328
|
-
if (tagSession != nil) {
|
|
329
|
-
[tagSession invalidateSession];
|
|
330
|
-
tagSession = nil;
|
|
331
|
-
callback(@[]);
|
|
332
|
-
} else {
|
|
333
|
-
callback(@[@"Not even registered", [NSNull null]]);
|
|
334
|
-
}
|
|
335
|
-
} else {
|
|
336
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
337
|
-
}
|
|
160
|
+
[RNNfcManager cancelTechnologyRequestWithCallback:callback];
|
|
338
161
|
}
|
|
339
162
|
|
|
340
163
|
- (void)registerTagEvent:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
341
164
|
{
|
|
342
|
-
|
|
343
|
-
if (session == nil && tagSession == nil) {
|
|
344
|
-
session = [[NFCNDEFReaderSession alloc]
|
|
345
|
-
initWithDelegate:self queue:dispatch_get_main_queue() invalidateAfterFirstRead:[[options objectForKey:@"invalidateAfterFirstRead"] boolValue]];
|
|
346
|
-
session.alertMessage = [options objectForKey:@"alertMessage"];
|
|
347
|
-
[session beginSession];
|
|
348
|
-
callback(@[]);
|
|
349
|
-
} else {
|
|
350
|
-
callback(@[@"Duplicated registration", [NSNull null]]);
|
|
351
|
-
}
|
|
352
|
-
} else {
|
|
353
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
354
|
-
}
|
|
165
|
+
[RNNfcManager createAndBeginNdefSessionWithOptions:options callback:callback];
|
|
355
166
|
}
|
|
356
167
|
|
|
357
168
|
- (void)unregisterTagEvent:(nonnull RCTResponseSenderBlock)callback
|
|
358
169
|
{
|
|
359
|
-
|
|
360
|
-
if (session != nil) {
|
|
361
|
-
[session invalidateSession];
|
|
362
|
-
session = nil;
|
|
363
|
-
callback(@[]);
|
|
364
|
-
} else {
|
|
365
|
-
callback(@[@"Not even registered", [NSNull null]]);
|
|
366
|
-
}
|
|
367
|
-
} else {
|
|
368
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
369
|
-
}
|
|
170
|
+
[RNNfcManager unregisterTagEventWithCallback:callback];
|
|
370
171
|
}
|
|
371
172
|
|
|
372
173
|
- (void)invalidateSession:(nonnull RCTResponseSenderBlock)callback
|
|
373
174
|
{
|
|
374
|
-
|
|
375
|
-
if (session != nil) {
|
|
376
|
-
[session invalidateSession];
|
|
377
|
-
session = nil;
|
|
378
|
-
callback(@[]);
|
|
379
|
-
} else if (tagSession != nil) {
|
|
380
|
-
[tagSession invalidateSession];
|
|
381
|
-
tagSession = nil;
|
|
382
|
-
callback(@[]);
|
|
383
|
-
} else {
|
|
384
|
-
callback(@[@"No active session", [NSNull null]]);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
175
|
+
[RNNfcManager invalidateSessionWithCallback:callback];
|
|
387
176
|
}
|
|
388
177
|
|
|
389
178
|
- (void)invalidateSessionWithError:(NSString *)errorMessage callback:(nonnull RCTResponseSenderBlock)callback
|
|
390
179
|
{
|
|
391
|
-
|
|
392
|
-
if (session != nil) {
|
|
393
|
-
[session invalidateSessionWithErrorMessage: errorMessage];
|
|
394
|
-
session = nil;
|
|
395
|
-
callback(@[]);
|
|
396
|
-
} else if (tagSession != nil) {
|
|
397
|
-
[tagSession invalidateSessionWithErrorMessage: errorMessage];
|
|
398
|
-
tagSession = nil;
|
|
399
|
-
callback(@[]);
|
|
400
|
-
} else {
|
|
401
|
-
callback(@[@"No active session", [NSNull null]]);
|
|
402
|
-
}
|
|
403
|
-
}
|
|
180
|
+
[RNNfcManager invalidateSessionWithErrorMessage:errorMessage callback:callback];
|
|
404
181
|
}
|
|
405
182
|
|
|
406
183
|
- (void)getTag: (nonnull RCTResponseSenderBlock)callback
|
|
407
184
|
{
|
|
408
|
-
|
|
409
|
-
NSMutableDictionary* rnTag = @{}.mutableCopy;
|
|
410
|
-
id<NFCNDEFTag> ndefTag = nil;
|
|
411
|
-
|
|
412
|
-
if (tagSession != nil) {
|
|
413
|
-
if (tagSession.connectedTag) {
|
|
414
|
-
rnTag = [self getRNTag:tagSession.connectedTag].mutableCopy;
|
|
415
|
-
ndefTag = [self getNDEFTagHandle:tagSession.connectedTag];
|
|
416
|
-
}
|
|
417
|
-
} else {
|
|
418
|
-
callback(@[@"No session available", [NSNull null]]);
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
if (ndefTag) {
|
|
422
|
-
[ndefTag readNDEFWithCompletionHandler:^(NFCNDEFMessage *ndefMessage, NSError *error) {
|
|
423
|
-
if (!error) {
|
|
424
|
-
[rnTag setObject:[NfcManager convertNdefMessage:ndefMessage] forKey:@"ndefMessage"];
|
|
425
|
-
}
|
|
426
|
-
callback(@[[NSNull null], rnTag]);
|
|
427
|
-
}];
|
|
428
|
-
return;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
callback(@[[NSNull null], rnTag]);
|
|
432
|
-
} else {
|
|
433
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
434
|
-
}
|
|
185
|
+
[RNNfcManager getTagWithCallback:callback];
|
|
435
186
|
}
|
|
436
187
|
|
|
437
188
|
- (void)getNdefMessage: (nonnull RCTResponseSenderBlock)callback
|
|
438
189
|
{
|
|
439
|
-
|
|
440
|
-
id<NFCNDEFTag> ndefTag = nil;
|
|
441
|
-
|
|
442
|
-
if (tagSession != nil) {
|
|
443
|
-
if (tagSession.connectedTag) {
|
|
444
|
-
ndefTag = [self getNDEFTagHandle:tagSession.connectedTag];
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
if (ndefTag) {
|
|
449
|
-
[ndefTag readNDEFWithCompletionHandler:^(NFCNDEFMessage *ndefMessage, NSError *error) {
|
|
450
|
-
if (error) {
|
|
451
|
-
callback(@[getErrorMessage(error), [NSNull null]]);
|
|
452
|
-
} else {
|
|
453
|
-
callback(@[[NSNull null], @{@"ndefMessage": [NfcManager convertNdefMessage:ndefMessage]}]);
|
|
454
|
-
}
|
|
455
|
-
}];
|
|
456
|
-
return;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
callback(@[@"No ndef available", [NSNull null]]);
|
|
460
|
-
} else {
|
|
461
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
462
|
-
}
|
|
190
|
+
[RNNfcManager getNdefMessageWithCallback:callback];
|
|
463
191
|
}
|
|
464
192
|
|
|
465
|
-
- (void)
|
|
193
|
+
- (void)getCachedNdefMessage: (nonnull RCTResponseSenderBlock)callback
|
|
466
194
|
{
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
if (tagSession != nil) {
|
|
471
|
-
if (tagSession.connectedTag) {
|
|
472
|
-
ndefTag = [self getNDEFTagHandle:tagSession.connectedTag];
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
if (ndefTag) {
|
|
477
|
-
NSData *data = arrayToData(bytes);
|
|
478
|
-
NFCNDEFMessage *ndefMsg = [NFCNDEFMessage ndefMessageWithData:data];
|
|
479
|
-
if (!ndefMsg) {
|
|
480
|
-
callback(@[@"invalid ndef msg"]);
|
|
481
|
-
return;
|
|
482
|
-
}
|
|
195
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
196
|
+
}
|
|
483
197
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
} else {
|
|
488
|
-
callback(@[[NSNull null]]);
|
|
489
|
-
}
|
|
490
|
-
}];
|
|
491
|
-
return;
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
callback(@[@"No ndef available", [NSNull null]]);
|
|
495
|
-
} else {
|
|
496
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
497
|
-
}
|
|
198
|
+
- (void)writeNdefMessage:(NSArray*)bytes options:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
199
|
+
{
|
|
200
|
+
[RNNfcManager writeNdefMessage:bytes options:options callback:callback];
|
|
498
201
|
}
|
|
499
202
|
|
|
500
203
|
- (void)makeReadOnly:(nonnull RCTResponseSenderBlock)callback
|
|
501
204
|
{
|
|
502
|
-
|
|
503
|
-
id<NFCNDEFTag> ndefTag = nil;
|
|
504
|
-
|
|
505
|
-
if (tagSession != nil) {
|
|
506
|
-
if (tagSession.connectedTag) {
|
|
507
|
-
ndefTag = [self getNDEFTagHandle:tagSession.connectedTag];
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
if (ndefTag) {
|
|
512
|
-
[ndefTag writeLockWithCompletionHandler:^(NSError *error) {
|
|
513
|
-
if (error) {
|
|
514
|
-
callback(@[getErrorMessage(error), [NSNull null]]);
|
|
515
|
-
} else {
|
|
516
|
-
callback(@[[NSNull null]]);
|
|
517
|
-
}
|
|
518
|
-
}];
|
|
519
|
-
return;
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
callback(@[@"No ndef available", [NSNull null]]);
|
|
523
|
-
} else {
|
|
524
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
525
|
-
}
|
|
205
|
+
[RNNfcManager makeReadOnlyWithCallback:callback];
|
|
526
206
|
}
|
|
527
207
|
|
|
528
208
|
- (void)queryNdefStatus:(nonnull RCTResponseSenderBlock)callback
|
|
529
209
|
{
|
|
530
|
-
|
|
531
|
-
id<NFCNDEFTag> ndefTag = nil;
|
|
532
|
-
|
|
533
|
-
if (tagSession != nil) {
|
|
534
|
-
if (tagSession.connectedTag) {
|
|
535
|
-
ndefTag = [self getNDEFTagHandle:tagSession.connectedTag];
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
if (ndefTag) {
|
|
540
|
-
[ndefTag queryNDEFStatusWithCompletionHandler:^(NFCNDEFStatus status, NSUInteger capacity, NSError *error) {
|
|
541
|
-
if (error) {
|
|
542
|
-
callback(@[getErrorMessage(error), [NSNull null]]);
|
|
543
|
-
} else {
|
|
544
|
-
callback(@[[NSNull null],
|
|
545
|
-
@{
|
|
546
|
-
@"status": [[NSNumber alloc] initWithInt:(int)status],
|
|
547
|
-
@"capacity": [[NSNumber alloc] initWithInt:(int)capacity]
|
|
548
|
-
}
|
|
549
|
-
]);
|
|
550
|
-
}
|
|
551
|
-
}];
|
|
552
|
-
return;
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
callback(@[@"No ndef available", [NSNull null]]);
|
|
556
|
-
} else {
|
|
557
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
558
|
-
}
|
|
210
|
+
[RNNfcManager queryNdefStatusWithCallback:callback];
|
|
559
211
|
}
|
|
560
212
|
|
|
561
213
|
- (void)setAlertMessage: (NSString *)alertMessage callback:(nonnull RCTResponseSenderBlock)callback
|
|
562
214
|
{
|
|
563
|
-
|
|
564
|
-
if (session != nil) {
|
|
565
|
-
session.alertMessage = alertMessage;
|
|
566
|
-
callback(@[]);
|
|
567
|
-
} else if (tagSession != nil) {
|
|
568
|
-
tagSession.alertMessage = alertMessage;
|
|
569
|
-
callback(@[]);
|
|
570
|
-
} else {
|
|
571
|
-
callback(@[@"Not even registered", [NSNull null]]);
|
|
572
|
-
}
|
|
573
|
-
} else {
|
|
574
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
575
|
-
}
|
|
215
|
+
[RNNfcManager setAlertMessage:alertMessage callback:callback];
|
|
576
216
|
}
|
|
577
217
|
|
|
578
218
|
- (void)isSessionAvailable:(nonnull RCTResponseSenderBlock)callback
|
|
579
219
|
{
|
|
580
|
-
|
|
581
|
-
callback(@[[NSNull null], session != nil ? @YES : @NO]);
|
|
582
|
-
} else {
|
|
583
|
-
callback(@[@"Not support in this device", [NSNull null]]);
|
|
584
|
-
}
|
|
220
|
+
[RNNfcManager isSessionAvailableWithCallback:callback];
|
|
585
221
|
}
|
|
586
222
|
|
|
587
223
|
- (void)isTagSessionAvailable:(nonnull RCTResponseSenderBlock)callback
|
|
588
224
|
{
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
225
|
+
[RNNfcManager isTagSessionAvailableWithCallback:callback];
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
- (void)sendMifareCommand:(NSArray *)bytes callback:(nonnull RCTResponseSenderBlock)callback
|
|
229
|
+
{
|
|
230
|
+
[RNNfcManager sendMifareCommand:bytes callback:callback];
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
- (void)sendFelicaCommand:(NSArray *)bytes callback:(nonnull RCTResponseSenderBlock)callback
|
|
234
|
+
{
|
|
235
|
+
[RNNfcManager sendFelicaCommand:bytes callback:callback];
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
- (void)sendCommandAPDUBytes:(NSArray *)bytes callback:(nonnull RCTResponseSenderBlock)callback
|
|
239
|
+
{
|
|
240
|
+
[RNNfcManager sendCommandAPDUBytes:bytes callback:callback];
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
- (void)sendCommandAPDU:(NSDictionary *)apduData callback:(nonnull RCTResponseSenderBlock)callback
|
|
244
|
+
{
|
|
245
|
+
[RNNfcManager sendCommandAPDU:apduData callback:callback];
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
- (void)iso15693_getSystemInfo:(double)requestFlag callback:(nonnull RCTResponseSenderBlock)callback
|
|
249
|
+
{
|
|
250
|
+
[RNNfcManager iso15693GetSystemInfo:@(requestFlag) callback:callback];
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
- (void)iso15693_readSingleBlock:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
254
|
+
{
|
|
255
|
+
[RNNfcManager iso15693ReadSingleBlock:options callback:callback];
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
- (void)iso15693_readMultipleBlocks:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
259
|
+
{
|
|
260
|
+
[RNNfcManager iso15693ReadMultipleBlocks:options callback:callback];
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
- (void)iso15693_writeSingleBlock:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
264
|
+
{
|
|
265
|
+
[RNNfcManager iso15693WriteSingleBlock:options callback:callback];
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
- (void)iso15693_lockBlock:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
269
|
+
{
|
|
270
|
+
[RNNfcManager iso15693LockBlock:options callback:callback];
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
- (void)iso15693_writeAFI:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
274
|
+
{
|
|
275
|
+
[RNNfcManager iso15693WriteAFI:options callback:callback];
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
- (void)iso15693_lockAFI:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
279
|
+
{
|
|
280
|
+
[RNNfcManager iso15693LockAFI:options callback:callback];
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
- (void)iso15693_writeDSFID:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
284
|
+
{
|
|
285
|
+
[RNNfcManager iso15693WriteDSFID:options callback:callback];
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
- (void)iso15693_lockDSFID:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
289
|
+
{
|
|
290
|
+
[RNNfcManager iso15693LockDSFID:options callback:callback];
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
- (void)iso15693_resetToReady:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
294
|
+
{
|
|
295
|
+
[RNNfcManager iso15693ResetToReady:options callback:callback];
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
- (void)iso15693_select:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
299
|
+
{
|
|
300
|
+
[RNNfcManager iso15693Select:options callback:callback];
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
- (void)iso15693_stayQuiet:(nonnull RCTResponseSenderBlock)callback
|
|
304
|
+
{
|
|
305
|
+
[RNNfcManager iso15693StayQuiet:callback];
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
- (void)iso15693_customCommand:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
309
|
+
{
|
|
310
|
+
[RNNfcManager iso15693CustomCommand:options callback:callback];
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
- (void)iso15693_sendRequest:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
314
|
+
{
|
|
315
|
+
[RNNfcManager iso15693SendRequest:options callback:callback];
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
- (void)iso15693_extendedReadSingleBlock:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
319
|
+
{
|
|
320
|
+
[RNNfcManager iso15693ExtendedReadSingleBlock:options callback:callback];
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
- (void)iso15693_extendedReadMultipleBlocks:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
324
|
+
{
|
|
325
|
+
[RNNfcManager iso15693ExtendedReadMultipleBlocks:options callback:callback];
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
- (void)iso15693_extendedWriteSingleBlock:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
329
|
+
{
|
|
330
|
+
[RNNfcManager iso15693ExtendedWriteSingleBlock:options callback:callback];
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
- (void)iso15693_extendedLockBlock:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback
|
|
334
|
+
{
|
|
335
|
+
[RNNfcManager iso15693ExtendedLockBlock:options callback:callback];
|
|
594
336
|
}
|
|
595
337
|
|
|
596
338
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
@@ -599,10 +341,6 @@ continueUserActivity:(NSUserActivity *)userActivity
|
|
|
599
341
|
}
|
|
600
342
|
#endif
|
|
601
343
|
|
|
602
|
-
- (void)echo:(NSString *)value callback:(RCTResponseSenderBlock)callback {
|
|
603
|
-
callback(@[[NSNull null], value]);
|
|
604
|
-
}
|
|
605
|
-
|
|
606
344
|
- (void)hasTagEventRegistration:(RCTResponseSenderBlock)callback {
|
|
607
345
|
// bypass, Android's interface
|
|
608
346
|
}
|
|
@@ -610,6 +348,94 @@ continueUserActivity:(NSUserActivity *)userActivity
|
|
|
610
348
|
- (void)isEnabled:(RCTResponseSenderBlock)callback {
|
|
611
349
|
// bypass, Android's interface
|
|
612
350
|
}
|
|
351
|
+
|
|
352
|
+
- (void)goToNfcSetting:(RCTResponseSenderBlock)callback {
|
|
353
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
- (void)getLaunchTagEvent:(RCTResponseSenderBlock)callback {
|
|
357
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
- (void)setTimeout:(double)timeout callback:(RCTResponseSenderBlock)callback {
|
|
361
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
- (void)getTimeout:(RCTResponseSenderBlock)callback {
|
|
365
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
- (void)connect:(NSArray *)techs callback:(RCTResponseSenderBlock)callback {
|
|
369
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
- (void)close:(RCTResponseSenderBlock)callback {
|
|
373
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
- (void)transceive:(NSArray *)bytes callback:(RCTResponseSenderBlock)callback {
|
|
377
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
- (void)getMaxTransceiveLength:(RCTResponseSenderBlock)callback {
|
|
381
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
- (void)formatNdef:(NSArray *)bytes options:(NSDictionary *)options callback:(RCTResponseSenderBlock)callback {
|
|
385
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
- (void)mifareUltralightReadPages:(double)pageOffset callback:(RCTResponseSenderBlock)callback {
|
|
389
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
- (void)mifareUltralightWritePage:(double)pageOffset bytes:(NSArray *)bytes callback:(RCTResponseSenderBlock)callback {
|
|
393
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
- (void)mifareClassicAuthenticateA:(double)sector key:(NSArray *)key callback:(RCTResponseSenderBlock)callback {
|
|
397
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
- (void)mifareClassicAuthenticateB:(double)sector key:(NSArray *)key callback:(RCTResponseSenderBlock)callback {
|
|
401
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
- (void)mifareClassicGetBlockCountInSector:(double)sector callback:(RCTResponseSenderBlock)callback {
|
|
405
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
- (void)mifareClassicGetSectorCount:(RCTResponseSenderBlock)callback {
|
|
409
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
- (void)mifareClassicSectorToBlock:(double)sector callback:(RCTResponseSenderBlock)callback {
|
|
413
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
- (void)mifareClassicReadBlock:(double)block callback:(RCTResponseSenderBlock)callback {
|
|
417
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
- (void)mifareClassicReadSector:(double)sector callback:(RCTResponseSenderBlock)callback {
|
|
421
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
- (void)mifareClassicWriteBlock:(double)block data:(NSArray *)data callback:(RCTResponseSenderBlock)callback {
|
|
425
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
- (void)mifareClassicIncrementBlock:(double)block value:(double)value callback:(RCTResponseSenderBlock)callback {
|
|
429
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
- (void)mifareClassicDecrementBlock:(double)block value:(double)value callback:(RCTResponseSenderBlock)callback {
|
|
433
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
- (void)mifareClassicTransferBlock:(double)block callback:(RCTResponseSenderBlock)callback {
|
|
437
|
+
callback(@[@"unsupported tag api", [NSNull null]]);
|
|
438
|
+
}
|
|
613
439
|
|
|
614
440
|
@end
|
|
615
441
|
|