createHTMLNotification() 替换
Posted
技术标签:
【中文标题】createHTMLNotification() 替换【英文标题】:createHTMLNotification() replacement 【发布时间】:2013-05-21 19:41:46 【问题描述】:我创建了一个 Chrome 扩展程序,它使用createhtmlNotification()
在所有内容之上显示一个窗口。然而,从 Chrome 28 开始,谷歌决定完全放弃createHTMLNotification()
(为什么,谷歌。为什么?)。突然间我需要找一个替代品。
createHTMLNotification()
让我动态更改通知上的内容。但是,我认为新的丰富通知不允许我这样做。
有什么解决方法或建议吗?谢谢。
【问题讨论】:
如果您不需要花哨的样式,而只需要图像、标题和正文,请使用webkitNotifications.createNotification(iconURL, head, body);
和 .show()
/ .close()
替换内容。
在 Mac OS X 上使用 webkitNotifications.createNotification
时,图标将始终是 Chrome 图标。似乎没有办法解决这个问题。
【参考方案1】:
更改实际上是announced properly on the Chromium-Extensions mailing list。不过显然有些误会,august last year 中表示会继续用于扩展,但只持续了半年。
反正官方推荐的替换是Rich Notifications API。没有计划其他解决方法。
【讨论】:
IMO 他们应该不理会 HTML 通知,或者至少通知我们,让我们有更多时间切换到新的富通知。 如前所述,正式的 EOL 通知是在 2012 年 8 月,但他们当时并不清楚它是否最终也会影响扩展开发人员。根据我的发现,互联网上有更多人对这个主题感到愤怒:) 我们有什么地方可以抱怨这个吗?任何开放的crbug?【参考方案2】:经过一番思考,我还是不想被谷歌的默认布局卡住。所以我使用了image
类型的通知,并在上面放了一个生成的画布图像。我可以画我想要的任何东西,我还创建了一个小 API 来随时更新通知。这对我来说很完美。
感谢 Google 让一切变得如此复杂...
【讨论】:
我有同样的问题 - 我的扩展程序创建的通知是交互式的,不能使用任何默认模板替换。所以,你是说我可以创建一个画布并捕捉并响应任何点击它? @KonradDzwinel - 不幸的是,它无法捕获除simple click event (without coordinates) 之外的任何用户操作。最好的办法是使用按钮功能,每个通知最多有 2 个按钮。 感谢您的解释!对我来说,两个按钮和一个可点击的图像仍然不够。您是否考虑过打开标准弹出窗口 (window.open
)?
@KonradDzwinel - 是的,但在我的情况下它不起作用,因为它看起来不像通知,而且它不会保持在最前面。因此我坚持使用通知 API 只是为了给它一个原生的外观。
谢谢 Derek,你为我节省了很多时间。以上是关于createHTMLNotification() 替换的主要内容,如果未能解决你的问题,请参考以下文章