如何在 Windows 通知上收听点击事件?

Posted

技术标签:

【中文标题】如何在 Windows 通知上收听点击事件?【英文标题】:How can I listen click event on Windows notifications? 【发布时间】:2020-09-23 08:56:25 【问题描述】:

我只是使用node-notifier 包发送通知。此外,当我点击通知时,它必须转到一个链接。但我听不到点击事件。包提供的事件什么都不做。这是我的代码:

const notifier = require("node-notifier");
const open = require("open");

notifier.notify(
  title: "***",
  message: "A message",
  wait: true,
  open: "https://***.com/",
);

notifier.on("click", function (notifierObject, options, event) 
  open("https://sindresorhus.com");
);

这是我的通知:

我可以使用任何其他包。我只想听点击事件。

@user120242 的回答有效,但在通知消失后点击无效。有什么办法吗?我添加了gif。

【问题讨论】:

甚至没有进入click事件回调? @Danyal no..... 【参考方案1】:

Action Center 需要在本机代码中单独实现,而 node-notifier 没有。你可以试试node-powertoast: npm i node-powertoast

const toast = require('powertoast');

toast(
  message: "Google It",
  onClick: "https://www.google.com"
).catch(err => console.error(err));

还支持 onActivate 回调函数。查看链接中的文档了解更多详情。


如何修复节点通知点击事件:

https://github.com/mikaelbr/node-notifier/issues/291#issuecomment-555741924 从版本 5 开始,点击不触发影响了很多人

由于动作名称的变化使用不一致。 您可以回滚到 5.4.3,或者在线程中使用使用回调的建议。

npm uninstall node-notifier
npm i node-notifier@5

或者:

notifier.notify(
 ... options
, (err, action, metadata) =>  if(action==='activate')  open('https://***.com') )

如果您有信心并且宁愿修复库本身,还有另一种可能性: https://github.com/mikaelbr/node-notifier/blob/v5.4.3/notifiers/toaster.js#L63https://github.com/mikaelbr/node-notifier/blob/v5.4.3/lib/utils.js#L245 修补这些以解决“激活”并发出“点击”(在主分支中,“映射器”功能不再存在)。

【讨论】:

那么,在通知消失后点击后有什么方法可以工作吗?我添加了一个 gif。 它必须在节点通知器的本机代码中实现。这不是一个小任务,所以它可能不会很快发生,节点通知器github.com/xan105/node-powertoast 会起作用 @dgknca 如果它对你有用,你会在这里奖励赏金吗?注意:如果您不奖励,bounty 将不可退款,因此 50 点将消失。无论如何我都会收到它,因为expiry rules,但我觉得作为个人选择,如果你自己奖励它会更好 您将获得 50 代表。我不给,因为这个问题仍然存在于特色问题中并且可以接触到更多的人。 “如果您在 7 天内(加上宽限期)未授予您的赏金,则在赏金开始后创建的最低得分为 2 的最高投票答案将获得一半的赏金(或全部金额,如果答案是也接受)。如果两个或多个符合条件的答案具有相同的分数(他们的分数相同),则选择最旧的答案。如果没有符合这些标准的答案,则不会向任何人授予奖励。" @dgknca 好吧。是的,我阅读了到期规则。但看起来你实际上比我更了解它们。不知道这对曝光很重要(而且似乎人们确实关心这个问题)。这有点酷,几乎就像自动升级一样。只是觉得最好让你知道,“反正我会失去这些积分,我想按照我自己的条件奖励它们”

以上是关于如何在 Windows 通知上收听点击事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 javascript 中收听表单提交事件?

如何在同一视图中收听不同控件上的点击手势?

如何使用插件audio_service颤动处理音频通知的onTap?

在苹果 iphone 上,点击通知会捕获啥事件?

在通知点击事件时调用活动

如何在推送通知中添加点击事件?