2016-01-25 7 views
15

Я использую пакет https://github.com/mikaelbr/node-notifier для отображения уведомлений в оболочке.Удалить значок терминала в уведомлении узла

Это мой код:

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 
}); 

Уведомление приходит так:

enter image description here

Как вы можете видеть значок терминал приходит перед именем.

Вы можете помочь мне удалить эту иконку?

ответ

8

Известная проблема с node-notifier.

От issue #71:

mikaelbr:

Нет, я боюсь, что это как работа уведомление, так как это терминал, который инициирует сообщение. Единственный способ избежать этого - использовать свой пользовательский терминал-уведомитель, где значок терминала будет заменен для вашего собственного. Это не большая задача, и вы можете легко set customPath для репортера центра уведомлений.

kurisubrooks:

Это происходит из-за способа уведомлений в OS X работы. В уведомлении будет отображаться значок приложения, и поскольку мы используем terminal-notifier для отправки уведомлений, у нас есть значок терминала-уведомителя.

Чтобы обойти это, вам необходимо скомпилировать терминал-уведомитель с помощью собственного приложения. Загрузите исходный код, замените пакет AppIcon своим собственным в Xcode, перекомпилируйте терминал-уведомитель и поместите его в уведомление-узел. (/node-notifier/vendor/terminal-notifier.app)

Теперь, когда у вас есть собственный терминал-уведомитель внутри узла-уведомителя, удалите все ссылки на значки из вашего кода Центра уведомлений OS X и запустите уведомление, как будто у него нет значка. Если в ваших уведомлениях отображается старый значок приложения, вам необходимо очистить кеш-память. (Google, как это сделать)

Другой ценный комментарий от mikaelb:

Это правильно. Но имейте в виду, что узел-уведомитель использует вилку терминального уведомителя (github.com/mikaelbr/terminal-notifier), чтобы добавить параметр, чтобы дождаться окончания уведомления, поэтому его следует использовать, чтобы добавить свой собственный значок. Легкий способ сделать это - скопировать/вставить из папки поставщика и использовать customPath, чтобы указать на своего собственного поставщика.

+1

Это правильно. Но имейте в виду, узел-уведомитель использует вилку терминала-уведомителя (https://github.com/mikaelbr/terminal-notifier), чтобы добавить параметр, чтобы дождаться окончания уведомления, поэтому его следует использовать для добавления собственного значка , Легкий способ сделать это - скопировать/вставить из папки поставщика и использовать 'customPath', чтобы указать на своего собственного поставщика. – mikaelb

+0

@mikaelb Спасибо. Я включил ваш комментарий в ответ, чтобы он не потерялся. –

1

Я пробовал шаги @Aleksandr M, но, похоже, это не работало для меня. Возможно, я недостаточно хорошо разбирался в этих шагах. Вот как это сработало для меня.

Я клонировал https://github.com/mikaelbr/terminal-notifier. Затем открыли проект с помощью xcode и удалили файл Terminal.icns и заменили его своим специальным значком Myicon.icns.

Затем отредактировал terminal-notifier/Terminal Notifier/Terminal Notifier-Info.plist, установив ключ icon file на Myicon.

После этого просто строительство проекта НЕ сработало. Мне пришлось изменить значения build version и build identifier (любое новое значение будет делать) see this.

После этого я просто построил проект с Xcode, а затем копируется встроенный .app файл (вы можете найти его, нажав на Products каталог проекта с Xcode Products > right click the file > show in finder) на мой электронный проект

например, ваш последний путь может выглядеть как это. electron-project/vendor/terminal-notifier.app.

Тогда я set customPath как @Aleksandr M предложил.

Вот что шахта выглядела

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

И ТОГДА это сработало!

 Смежные вопросы

  • Нет связанных вопросов^_^