2016-01-25 7 views
15

Sto utilizzando il pacchetto https://github.com/mikaelbr/node-notifier per mostrare le notifiche nella shell.Rimuovi l'icona del terminale nel notificatore del nodo

Questo è il mio codice:

var notifier = require('node-notifier'); 
var path = require('path'); 

notifier.notify({ 
    title: 'My awesome title', 
    message: 'Hello from node, Mr. User!', 
    icon: path.join(__dirname, 'coulson.jpg'), // absolute path (not balloons) 
    sound: true, // Only Notification Center or Windows Toasters 
    wait: true // wait with callback until user action is taken on notification 
}, function (err, response) { 
    // response is response from notification 
}); 

notifier.on('click', function (notifierObject, options) { 
    // Happens if `wait: true` and user clicks notification 
}); 

notifier.on('timeout', function (notifierObject, options) { 
    // Happens if `wait: true` and notification closes 
}); 

La notifica viene in questo modo:

enter image description here

Come si può vedere l'icona di un terminale è in arrivo prima del nome.

Puoi aiutarmi a rimuovere l'icona?

risposta

8

È noto il problema con node-notifier.

Da issue #71:

mikaelbr:

No, ho paura che è come il lavoro di notifica, in quanto è il terminale che inizia il messaggio. L'unico modo per evitarlo è usare il tuo terminale di notifica personalizzato dove l'icona del terminale viene scambiata per te. Non è un compito importante e puoi facilmente fare il set customPath per il reporter del centro notifiche.

kurisubrooks:

Questo accade a causa del modo in cui le notifiche di lavoro OS X. La notifica mostrerà l'icona dell'app di riferimento e, poiché stiamo utilizzando le notifiche terminal-notifier, abbiamo l'icona del terminale-notificatore.

Per ovviare a questo problema, è necessario compilare il terminale di notifica con le proprie app.icns. Scarica la sorgente, modifica il pacchetto AppIcon con il tuo in Xcode, ricompila il terminale-notificatore e inseriscilo nel nodo-notificatore. (/node-notifier/vendor/terminal-notifier.app)

Ora che si dispone di un proprio terminale di notifica all'interno del programma di notifica del nodo, rimuovere tutti i riferimenti di icona dal codice del Centro di notifica OS X ed eseguire la notifica come se non avesse un'icona. Se la vecchia icona dell'app viene visualizzata nelle notifiche, è necessario cancellare la cache delle icone. (Google come farlo)

Un altro commento prezioso mikaelb:

Questo è corretto. Ma tieni presente che il Node-Notifier usa un fork del terminale-notifier (github.com/mikaelbr/terminal-notifier) per aggiungere l'opzione per attendere che la notifica finisca, quindi questo dovrebbe essere usato per aggiungere la tua icona. Un modo semplice per farlo è copiare/incollare dalla cartella del fornitore e usare customPath per puntare al proprio fornitore.

+1

Questo è corretto. Ma tieni presente che il Node-notifier usa un fork del terminale-notifier (https://github.com/mikaelbr/terminal-notifier) ​​per aggiungere l'opzione per attendere che la notifica finisca, quindi questo dovrebbe essere usato per aggiungere la tua icona . Un modo semplice per farlo è copiare/incollare dalla cartella del fornitore e usare 'customPath' per indicare il proprio fornitore. – mikaelb

+0

@mikaelb Grazie. Ho incluso il tuo commento alla risposta, quindi non andrà perso. –

1

Ho provato i passaggi di @Aleksandr M ma non sembra funzionare per me. Forse non ho capito bene i passaggi. Ecco come ha funzionato per me.

Ho clonato https://github.com/mikaelbr/terminal-notifier. Quindi ha aperto il progetto con xcode ed eliminato il file Terminal.icns e lo ha sostituito con la mia icona personalizzata Myicon.icns.

Quindi modificato terminal-notifier/Terminal Notifier/Terminal Notifier-Info.plist impostando la chiave icon file su Myicon.

Dopo aver fatto questo, la semplice costruzione del progetto NON ha funzionato. Ho dovuto modificare i valori di build version e build identifier (qualsiasi nuovo valore dovrebbe essere) see this.

In seguito ho appena costruito il progetto con Xcode e poi copiato il .app file di costruzione (si può trovare cliccando sul Products directory del progetto da Xcode Products > right click the file > show in finder) al mio progetto di elettroni

ad esempio il percorso finale può sembrare come questo. electron-project/vendor/terminal-notifier.app.

Quindi I set customPath come suggerito da @Aleksandr M.

Ecco cosa miniera sembrava

var notifier = new NotificationCenter({ customPath: 'vendor/terminal-notifier.app/Contents/MacOS/terminal-notifier' });

e poi ha funzionato!

Problemi correlati