Удалить значок терминала в уведомлении node
Я использую 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
});
Уведомление происходит следующим образом:
![введите описание изображения здесь]()
Как вы видите, значок терминала появляется перед именем.
Вы можете помочь мне удалить эту иконку?
Ответы
Ответ 1
Известна проблема с node-notifier.
Из issue # 71:
mikaelbr:
Нет, я боюсь, как работает уведомление, так как это терминал, который инициирует сообщение. Единственный способ избежать этого - использовать свой пользовательский терминал-уведомитель, где значок терминала будет заменен для вашего собственного. Это не большая задача, и вы можете легко установить customPath для репортера центра уведомлений.
kurisubrooks:
Это происходит из-за того, как работают уведомления в OS X. В уведомлении будет отображаться значок приложения, и потому что мы используем terminal-notifier для ввода уведомлений, у нас есть значок терминала-уведомления.
Чтобы обойти это, вам нужно скомпилировать терминал-уведомитель со своим собственным app.icns. Загрузите исходный код, замените пакет AppIcon своим собственным в Xcode, перекомпилируйте терминал-уведомитель и поместите его в node -notifier. (/node-notifier/vendor/terminal-notifier.app
)
Теперь, когда у вас есть собственный терминальный уведомитель внутри node -notifier, удалите все ссылки на значки из вашего кода Центра уведомлений OS X и запустите уведомление, как будто у него нет значка. Если в ваших уведомлениях отображается старый значок приложения, вам необходимо очистить кеш-память. (Google, как это сделать)
Еще один ценный комментарий от mikaelb:
Это правильно. Но имейте в виду, что node -notifier использует вилку терминального уведомителя (github.com/mikaelbr/terminal-notifier), чтобы добавить параметр, чтобы ждать уведомления, поэтому это нужно использовать, чтобы добавить свой собственный значок. Легкий способ сделать это - скопировать/вставить из папки поставщика и использовать customPath
, чтобы указать на своего собственного поставщика.
Ответ 2
Я пробовал шаги @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
(любое новое значение будет делать) см. Это.
Затем я только что построил проект с помощью xcode, а затем скопировал встроенный файл .app
(его можно найти, щелкнув каталог Products
проекта от xcode Products > right click the file > show in finder
) к моему электронному проекту
например, ваш конечный путь может выглядеть следующим образом. electron-project/vendor/terminal-notifier.app
.
Затем я установить customPath, как предположил @Aleksandr M.
Вот что мое выглядело как
var notifier = new NotificationCenter({
customPath: 'vendor/terminal-notifier.app/Contents/MacOS/terminal-notifier'
});
И ТОГДА это сработало! 🙂