Я создал работающее электронное приложение (с vue и nfc-pcsc), так что теперь я пытаюсь его распространить.
Я использовал электронный упаковщик для упаковки приложения winx64 (другие ПК тоже 64-битные!), Когда я запускаю исполняемый файл на компьютере разработчика, он работает, когда я запускаю его на любом другом компьютере в офисе, которого нет.,
Итак, я начал отладку и обнаружил, что библиотека NFC-PCSC вызывает проблемы на других компьютерах.Я выяснил это, закомментировав смонтированный и ранее уничтоженный в моем компоненте .vue (где обрабатываются только функции nfc-pcsc).
<template>
<v-container>
<v-card style="margin-top: 25px;">
<v-card-title>
<h1 :style="styleHeading">Scan employee card<div :class="getClass()"><span v-if="!nfcReady">un</span>ready</div><v-btn style="float:right;" @click="backdoorLogin()">Backdoor login</v-btn></h1>
</v-card-title>
<v-card-text style="text-align: center;">
<img id="scan" src="../../assets/nfc-card.png"></img>
</v-card-text>
</v-card>
</v-container>
</template>
<script>
import {Login, Backdoor} from '../../assets/js/auth.js';
import {NFC} from 'nfc-pcsc';
var log = require('electron-log');
export default {
data(){
return {
nfc: null,
readers: new Set(),
styleHeading : {
backgroundColor:
this.$parent.$config.THEME.COLORS.h1Background,
color: this.$parent.$config.THEME.COLORS.h1Text
},
nfcReady: false
}
},
created(){
log.info('created');
},
mounted(){
log.info('Mounted start')
var nfc = new NFC();
nfc.on('reader',reader => {
this.nfcReady = true;
this.readers.add(reader);
console.log(`${reader.reader.name} device attached`);
//if a card is being scanned
reader.on('card', card => {
//do a login api call to see if an employee has this card uid.
Login(card.uid).then((response) => {
this.$router.push({name: 'Main'})
}).catch(() =>{
alert('nope')
})
console.log(`${reader.reader.name} card detected`, card);
});
reader.on('error', error => {
//console.log(error);
})
reader.on('end', () => {
this.nfcReady = false;
});
});
nfc.on('error', error => {
console.log(error);
})
log.info('Mounted end')
},
beforeDestroy(){
// stops listening for new readers and stops listening on all the readers too
this.nfc.close();
this.readers.forEach(reader => {
reader.close();
});
}
}
</script>
У меня проблемы с пониманием, почему он работает только на моем компьютере.Я уже поместил все devDependencies в зависимости (кроме электрона, потому что он не может), просто чтобы убедиться, что все зависимости находятся в нужном месте, но безуспешно.