首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除节点通知程序中的终端图标

删除节点通知程序中的终端图标
EN

Stack Overflow用户
提问于 2016-01-26 04:51:22
回答 3查看 3.1K关注 0票数 20

我正在使用https://github.com/mikaelbr/node-notifier包在shell中显示通知。

这是我的代码:

代码语言:javascript
复制
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
});

通知是这样的:

正如您所看到的,终端图标出现在名称之前。

你能告诉我怎么移除那个图标吗?

EN

回答 3

Stack Overflow用户

发布于 2016-02-04 19:05:27

这是node-notifier的已知问题。

来自issue #71

mikaelbr

不,恐怕这就是通知的工作方式,因为它是发起消息的终端。避免这种情况的唯一方法是使用您的自定义终端通知程序,其中将终端图标替换为您自己的图标。这不是一个大任务,你可以很容易地为通知中心的记者set customPath

kurisubrooks

这是由于OS X中通知的工作方式造成的。通知将显示引用应用程序图标,因为我们使用terminal-notifier来推送通知,所以我们有终端通知器图标。

为了解决这个问题,你需要用你自己的app.icns编译终端通知器。下载源代码,在Xcode中用您自己的AppIcon包替换掉它,重新编译终端通知器并将其弹出到节点通知器中。(/node-notifier/vendor/terminal-notifier.app)

现在,您在node-notifier中有了自己的终端通知程序,删除OS X Notification Center代码中的所有图标引用,并运行通知,就像它没有图标一样。如果旧的应用程序图标显示在您的通知中,您需要清除图标缓存。(谷歌如何做到这一点)

来自mikaelb的另一个有价值的评论

说的没错。但请记住,node-notifier使用终端通知器(github.com/mikaelbr/terminal-notifier)的分支来添加等待通知完成的选项,因此这应该用于添加您自己的图标。一种简单的方法是从供应商文件夹中复制/粘贴,并使用customPath指向您自己的供应商。

票数 11
EN

Stack Overflow用户

发布于 2016-10-30 18:28:23

我尝试了@Aleksandr M的步骤,但似乎对我不起作用。也许我对这些步骤理解得还不够好。这就是我的工作原理。

我克隆了https://github.com/mikaelbr/terminal-notifier。然后用xcode打开项目,删除Terminal.icns文件,并用我的自定义图标Myicon.icns替换它。

然后通过将密钥icon file设置为Myicon来编辑terminal-notifier/Terminal Notifier/Terminal Notifier-Info.plist

这样做之后,简单地构建项目就不起作用了。我必须更改build versionbuild identifier (任何新值都可以) see this的值。

然后,我只需使用xcode构建项目,然后将构建的.app文件(您可以通过从xcode Products > right click the file > show in finder单击项目的Products目录来找到它)复制到我的电子项目中

例如,您的最终路径可能如下所示。electron-project/vendor/terminal-notifier.app

然后我按照@Aleksandr M的建议进行set customPath

这就是我的样子

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

然后它就成功了!

票数 3
EN

Stack Overflow用户

发布于 2018-06-13 15:54:44

这解决了我的问题,你只需要准备好你的icns文件:

下载后在终端运行以下命令:customise- terminal -notifier

** path/customise-terminal-notifier-master/customise-terminal-notifier -i path/Terminal.icns -b com.bundle.identifier

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35002117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档