【问题标题】:Google Rich Notifications, best way to click to open a notifications specific url?Google Rich Notifications,点击打开通知特定网址的最佳方式?
【发布时间】:2016-02-25 23:03:53
【问题描述】:

我正在开发 chrome 扩展程序,目前正在使用 chrome.notifications API。 我需要的行为是让每个通知都有一个特定且可能不同的 URL 以在点击时打开。

使用丰富的 chrome 通知,我可以通过 chrome.notifications.create(string notificationId, NotificationOptions options, function callback) 创建通知,但 Options 参数不允许我发送额外信息,例如我希望它打开的 url。

最好的方法是什么?

我可以将chrome.notifications.onClicked.addListener(function(string notificationId) {...}) 函数与notificationId 一起使用并找出url 是什么,但要么我再次调用服务器以找出它(我想避免),要么我可以将它存储在本地存储,但更简单的方法是在我从服务器接收到该信息时使用该信息创建通知,而不是仅在单击发生时存储它或从服务器再次获取它。

我可以使用 Html5 通知,并执行以下操作:

var notification = new Notification('Notification title', {
  icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
  body: "Hey there! You've been notified!",
});

notification.onclick = function () {
  window.open("http://stackoverflow.com/a/13328397/1269037");

但我会失去 RichNotification 功能,我也在努力避免那样做。

有没有更简单或更好的方法?

干杯

【问题讨论】:

  • 是的,本地存储是我的想法,因为我没有持久的背景页面。

标签: google-chrome-extension notifications


【解决方案1】:

notificationId 可以是任意字符串,因此您可以将 URL 用作 chrome.notifications.create 中的 notificationId。如果 URL 不一定是唯一的,请添加前缀或后缀。如果您想要更多参数(例如,每个按钮的不同操作),则序列化对象(例如,使用JSON.serialize)。 所有事件监听器(onClosed、onClicked、onButtonClicked)都接收notificationId作为参数,因此很容易取回原始数据。

【讨论】:

  • 是的,这是一个非常简单的想法。我传递了一个 Json 作为 id,然后我可以在单击通知时做任何我需要的事情,谢谢
猜你喜欢
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
  • 1970-01-01
  • 2017-09-15
  • 1970-01-01
  • 2017-01-18
相关资源
最近更新 更多