Comment éviter que plusieurs instances dans l'électronique
Je ne sais pas si c'est possible, mais je pourrais aussi bien lui donner une chance et demander.
Je suis en train de faire un Électron app et je voudrais savoir si il est possible d'avoir qu'une seule instance à la fois.
J'ai trouvé ce gist mais je ne suis pas chaud pour l'utiliser. Quelqu'un peut jeter un peu de lumière de partager une meilleure idée ?
var preventMultipleInstances = function(window) {
var socket = (process.platform === 'win32') ? '\\\\.\\pipe\\myapp-sock' : path.join(os.tmpdir(), 'myapp.sock');
net.connect({path: socket}, function () {
var errorMessage = 'Another instance of ' + pjson.productName + ' is already running. Only one instance of the app can be open at a time.'
dialog.showMessageBox(window, {'type': 'error', message: errorMessage, buttons: ['OK']}, function() {
window.destroy()
})
}).on('error', function (err) {
if (process.platform !== 'win32') {
//try to unlink older socket if it exists, if it doesn't,
//ignore ENOENT errors
try {
fs.unlinkSync(socket);
} catch (e) {
if (e.code !== 'ENOENT') {
throw e;
}
}
}
net.createServer(function (connection) {}).listen(socket);;
});
}
OriginalL'auteur Eduard | 2016-03-10
Vous devez vous connecter pour publier un commentaire.
Utiliser le
makeSingleInstance
fonction dans leapp
module, il y a même un exemple dans la doc.Merci! Très utile réponse !
Cela fonctionne dans les versions moins d'électrons 4.0
OriginalL'auteur Vadim Macagon
Il y a une nouvelle API maintenant: requestSingleInstanceLock
Cela est nécessaire, car l'électron 4.0
OriginalL'auteur r03
Dans le Cas où vous avez besoin du code.
OriginalL'auteur manish kumar