From a8ac90da5c79a76b16cc07c9bbf3cd6474700f4d Mon Sep 17 00:00:00 2001 From: Lee Salminen Date: Mon, 29 Aug 2022 08:19:39 -0600 Subject: [PATCH] make scan nfc button work --- .../extensions/boltcards/static/js/index.js | 63 +++++++++++++++++++ .../boltcards/templates/boltcards/index.html | 3 +- 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/lnbits/extensions/boltcards/static/js/index.js b/lnbits/extensions/boltcards/static/js/index.js index e6c052ac..315ed59f 100644 --- a/lnbits/extensions/boltcards/static/js/index.js +++ b/lnbits/extensions/boltcards/static/js/index.js @@ -230,6 +230,69 @@ new Vue({ ? '33333333333333333333333333333333' : genRanHex(32) }, + readNfcTag: function () { + try { + const self = this + + if (typeof NDEFReader == 'undefined') { + throw { + toString: function () { + return 'NFC not supported on this device or browser.' + } + } + } + + const ndef = new NDEFReader() + + const readerAbortController = new AbortController() + readerAbortController.signal.onabort = event => { + console.log('All NFC Read operations have been aborted.') + } + + this.nfcTagReading = true + this.$q.notify({ + message: 'Tap your NFC tag to read its UID' + }) + + return ndef.scan({signal: readerAbortController.signal}).then(() => { + ndef.onreadingerror = () => { + self.nfcTagReading = false + + this.$q.notify({ + type: 'negative', + message: 'There was an error reading this NFC tag.' + }) + + readerAbortController.abort() + } + + ndef.onreading = ({message, serialNumber}) => { + self.nfcTagReading = false + + self.cardDialog.data.uid = serialNumber + .replaceAll(':', '') + .toUpperCase() + + this.$q.notify({ + type: 'positive', + message: 'NFC tag read successfully.' + }) + + setTimeout(() => { + readerAbortController.abort() + }, 1000) + } + }) + } catch (error) { + this.nfcTagReading = false + this.$q.notify({ + type: 'negative', + message: error + ? error.toString() + : 'An unexpected error has occurred.' + }) + } + }, closeFormDialog: function () { this.cardDialog.data = {} }, diff --git a/lnbits/extensions/boltcards/templates/boltcards/index.html b/lnbits/extensions/boltcards/templates/boltcards/index.html index 0561cc01..eb29e543 100644 --- a/lnbits/extensions/boltcards/templates/boltcards/index.html +++ b/lnbits/extensions/boltcards/templates/boltcards/index.html @@ -278,7 +278,8 @@ color="grey" icon="nfc" :disable="nfcTagReading" - >Tap card to scan UID (coming soon)Tap card to scan UID