react-native-nfc-manager 3.14.6 → 3.14.8
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.
|
@@ -241,8 +241,10 @@ class NfcManager extends ReactContextBaseJavaModule implements ActivityEventList
|
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
@ReactMethod
|
|
244
|
-
public void writeNdefMessage(ReadableArray rnArray, Callback callback) {
|
|
244
|
+
public void writeNdefMessage(ReadableArray rnArray, ReadableMap options, Callback callback) {
|
|
245
245
|
synchronized(this) {
|
|
246
|
+
boolean reconnectAfterWrite = options.getBoolean("reconnectAfterWrite");
|
|
247
|
+
|
|
246
248
|
if (techRequest != null) {
|
|
247
249
|
try {
|
|
248
250
|
Ndef ndef = (Ndef)techRequest.getTechHandle();
|
|
@@ -251,6 +253,11 @@ class NfcManager extends ReactContextBaseJavaModule implements ActivityEventList
|
|
|
251
253
|
} else {
|
|
252
254
|
byte[] bytes = rnArrayToBytes(rnArray);
|
|
253
255
|
ndef.writeNdefMessage(new NdefMessage(bytes));
|
|
256
|
+
if (reconnectAfterWrite) {
|
|
257
|
+
ndef.close();
|
|
258
|
+
//reconnection is needed in order to be able to read the written ndef
|
|
259
|
+
ndef.connect();
|
|
260
|
+
}
|
|
254
261
|
callback.invoke();
|
|
255
262
|
}
|
|
256
263
|
} catch (Exception ex) {
|
|
@@ -948,34 +955,6 @@ class NfcManager extends ReactContextBaseJavaModule implements ActivityEventList
|
|
|
948
955
|
}
|
|
949
956
|
}
|
|
950
957
|
|
|
951
|
-
@ReactMethod
|
|
952
|
-
public void setNdefPushMessage(ReadableArray rnArray, Callback callback) {
|
|
953
|
-
synchronized(this) {
|
|
954
|
-
if (techRequest == null && writeNdefRequest == null) {
|
|
955
|
-
try {
|
|
956
|
-
Activity currentActivity = getCurrentActivity();
|
|
957
|
-
if (currentActivity == null) {
|
|
958
|
-
throw new RuntimeException("cannot get current activity");
|
|
959
|
-
}
|
|
960
|
-
|
|
961
|
-
NdefMessage msgToPush = null;
|
|
962
|
-
if (rnArray != null) {
|
|
963
|
-
msgToPush = new NdefMessage(rnArrayToBytes(rnArray));
|
|
964
|
-
}
|
|
965
|
-
|
|
966
|
-
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(context);
|
|
967
|
-
nfcAdapter.setNdefPushMessage(msgToPush, currentActivity);
|
|
968
|
-
callback.invoke();
|
|
969
|
-
} catch (Exception ex) {
|
|
970
|
-
Log.d(LOG_TAG, ex.toString());
|
|
971
|
-
callback.invoke(ex.toString());
|
|
972
|
-
}
|
|
973
|
-
} else {
|
|
974
|
-
callback.invoke(ERR_MULTI_REQ);
|
|
975
|
-
}
|
|
976
|
-
}
|
|
977
|
-
}
|
|
978
|
-
|
|
979
958
|
@ReactMethod
|
|
980
959
|
public void start(Callback callback) {
|
|
981
960
|
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(context);
|
|
@@ -1321,6 +1300,7 @@ class NfcManager extends ReactContextBaseJavaModule implements ActivityEventList
|
|
|
1321
1300
|
// Parcelable[] messages = intent.getParcelableArrayExtra((NfcAdapter.EXTRA_NDEF_MESSAGES));
|
|
1322
1301
|
|
|
1323
1302
|
synchronized(this) {
|
|
1303
|
+
this.tag = tag;
|
|
1324
1304
|
if (writeNdefRequest != null) {
|
|
1325
1305
|
writeNdef(
|
|
1326
1306
|
tag,
|
package/index.d.ts
CHANGED
|
@@ -92,7 +92,7 @@ declare module 'react-native-nfc-manager' {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
interface NdefHandler {
|
|
95
|
-
writeNdefMessage: (bytes: number[]) => Promise<void>;
|
|
95
|
+
writeNdefMessage: (bytes: number[] , options?: { reconnectAfterWrite: boolean }) => Promise<void>;
|
|
96
96
|
getNdefMessage: () => Promise<TagEvent | null>;
|
|
97
97
|
makeReadOnly: () => Promise<void>;
|
|
98
98
|
getNdefStatus: () => Promise<{
|
package/ios/NfcManager.m
CHANGED
|
@@ -440,7 +440,7 @@ RCT_EXPORT_METHOD(getNdefMessage: (nonnull RCTResponseSenderBlock)callback)
|
|
|
440
440
|
}
|
|
441
441
|
}
|
|
442
442
|
|
|
443
|
-
RCT_EXPORT_METHOD(writeNdefMessage:(NSArray*)bytes callback:(nonnull RCTResponseSenderBlock)callback)
|
|
443
|
+
RCT_EXPORT_METHOD(writeNdefMessage:(NSArray*)bytes options:(NSDictionary *)options callback:(nonnull RCTResponseSenderBlock)callback)
|
|
444
444
|
{
|
|
445
445
|
if (@available(iOS 13.0, *)) {
|
|
446
446
|
id<NFCNDEFTag> ndefTag = nil;
|
package/package.json
CHANGED
package/src/NfcManager.js
CHANGED
|
@@ -104,8 +104,8 @@ class NfcManagerBase {
|
|
|
104
104
|
|
|
105
105
|
setAlertMessage = DoNothing;
|
|
106
106
|
|
|
107
|
-
async writeNdefMessage(bytes) {
|
|
108
|
-
return handleNativeException(callNative('writeNdefMessage', [bytes]));
|
|
107
|
+
async writeNdefMessage(bytes, options = {}) {
|
|
108
|
+
return handleNativeException(callNative('writeNdefMessage', [bytes, options]));
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
async getNdefMessage() {
|
package/src/NfcManagerAndroid.js
CHANGED
|
@@ -77,8 +77,9 @@ class NfcManagerAndroid extends NfcManagerBase {
|
|
|
77
77
|
getLaunchTagEvent = () =>
|
|
78
78
|
handleNativeException(callNative('getLaunchTagEvent'));
|
|
79
79
|
|
|
80
|
-
setNdefPushMessage = (bytes) =>
|
|
81
|
-
|
|
80
|
+
setNdefPushMessage = (bytes) => {
|
|
81
|
+
return Promise.reject('this api is deprecated');
|
|
82
|
+
}
|
|
82
83
|
|
|
83
84
|
setTimeout = (timeout) =>
|
|
84
85
|
handleNativeException(callNative('setTimeout', [timeout]));
|
|
@@ -9,8 +9,16 @@ const NdefStatus = {
|
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
class NdefHandler {
|
|
12
|
-
async writeNdefMessage(bytes) {
|
|
13
|
-
|
|
12
|
+
async writeNdefMessage(bytes, options) {
|
|
13
|
+
|
|
14
|
+
const defaultOptions = { reconnectAfterWrite: false };
|
|
15
|
+
return handleNativeException(
|
|
16
|
+
callNative('writeNdefMessage', [
|
|
17
|
+
bytes,
|
|
18
|
+
{...defaultOptions, ...options}
|
|
19
|
+
])
|
|
20
|
+
);
|
|
21
|
+
|
|
14
22
|
}
|
|
15
23
|
|
|
16
24
|
async getNdefMessage() {
|