Skip to content

Commit fe23a5e

Browse files
zaphim12FabianLars
andauthored
fix(nfc): Ensure that Session is dropped when an error causes it to become invalid (#2885)
Co-authored-by: Fabian-Lars <[email protected]>
1 parent ff6d23e commit fe23a5e

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

.changes/nfc-close-session.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
nfc: patch
3+
nfc-js: patch
4+
---
5+
6+
On iOS, the reader session will now get closed properly on errors, preventing dangling invalid sessions that could prevent subsequent write attempts.

plugins/nfc/ios/Sources/NfcPlugin.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ class NfcPlugin: Plugin, NFCTagReaderSessionDelegate, NFCNDEFReaderSessionDelega
149149
func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) {
150150
Logger.error("Tag reader session error \(error)")
151151
self.session?.invoke.reject("session invalidated with error: \(error)")
152+
self.session = nil
152153
}
153154

154155
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
@@ -200,6 +201,7 @@ class NfcPlugin: Plugin, NFCTagReaderSessionDelegate, NFCNDEFReaderSessionDelega
200201
} else {
201202
Logger.error("NDEF reader session error \(error)")
202203
self.session?.invoke.reject("session invalidated with error: \(error)")
204+
self.session = nil
203205
}
204206
}
205207

0 commit comments

Comments
 (0)