fix(nfc): Ensure that Session is dropped when an error causes it to become invalid (#2885)

Co-authored-by: Fabian-Lars <github@fabianlars.de>
This commit is contained in:
Ray
2025-08-01 14:49:49 -04:00
committed by GitHub
parent ff6d23ede1
commit fe23a5e013
2 changed files with 8 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
---
nfc: patch
nfc-js: patch
---
On iOS, the reader session will now get closed properly on errors, preventing dangling invalid sessions that could prevent subsequent write attempts.
+2
View File
@@ -149,6 +149,7 @@ class NfcPlugin: Plugin, NFCTagReaderSessionDelegate, NFCNDEFReaderSessionDelega
func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) {
Logger.error("Tag reader session error \(error)")
self.session?.invoke.reject("session invalidated with error: \(error)")
self.session = nil
}
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
@@ -200,6 +201,7 @@ class NfcPlugin: Plugin, NFCTagReaderSessionDelegate, NFCNDEFReaderSessionDelega
} else {
Logger.error("NDEF reader session error \(error)")
self.session?.invoke.reject("session invalidated with error: \(error)")
self.session = nil
}
}