react-native-nfc-manager 3.14.7 → 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) {
@@ -1293,6 +1300,7 @@ class NfcManager extends ReactContextBaseJavaModule implements ActivityEventList
1293
1300
  // Parcelable[] messages = intent.getParcelableArrayExtra((NfcAdapter.EXTRA_NDEF_MESSAGES));
1294
1301
 
1295
1302
  synchronized(this) {
1303
+ this.tag = tag;
1296
1304
  if (writeNdefRequest != null) {
1297
1305
  writeNdef(
1298
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-nfc-manager",
3
- "version": "3.14.7",
3
+ "version": "3.14.8",
4
4
  "description": "A NFC module for react native.",
5
5
  "main": "src/index.js",
6
6
  "repository": {
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() {
@@ -9,8 +9,16 @@ const NdefStatus = {
9
9
  };
10
10
 
11
11
  class NdefHandler {
12
- async writeNdefMessage(bytes) {
13
- return handleNativeException(callNative('writeNdefMessage', [bytes]));
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() {