Chrome Notification API(用于扩展程序!)如何在阻止后重新启用?

问题描述 投票:3回答:2

我花了相当多的时间研究这个,希望我错过了一些东西,所以我想我也会把它从StackExchange社区中反弹出来。

背景:

在最新的Chrome> 65时,所有通知都是按站点存储的,因此,如果要为站点授予或拒绝通知弹出窗口并想要撤销该决定(例如,意外点击“阻止”),他们可以只需进入Chrome通知设置,找到该特定网站,然后删除该块即可。这按今天的设计工作,并有详细记录。

所以这是场景中的问题细节:

现在,完全相同的机制用于扩展。扩展最初被授予所有必需的权限并且正常工作。然后,用户使用通知上的“齿轮”齿轮图标意外地点击来自分机的单个桌面通知上的“阻止”一次,然后将通知气球更改为此提示:

https://i.imgur.com/f7Rp0B1.png

现在,任何时候该扩展尝试发送通知消息,而不是正常的桌面通知,在屏幕中间弹出一个丑陋的javascript通知(具有完全相同的通知文本),以及两个按钮 - “确定”和“取消”。如果单击“确定”,则所有扩展功能都保持不变,例如,相同的功能就像用户点击了之前的桌面通知气球弹出窗口一样。

以下是使用流行的Tampermonkey Chrome扩展程序(使用随机选择的具有已知更新的脚本)使用桌面通知API来传达脚本更新的此确切方案的两个屏幕截图:

具有默认授予权限的“普通”桌面通知消息:

https://i.imgur.com/JLn9y1c.png

用户单击“阻止”撤消该权限后,完全相同的消息(显示在屏幕中央)。 **注意实际的消息本身没有被阻止,我觉得很奇怪,只是桌面通知GUI bubble:

https://i.imgur.com/yR31pos.png

所以,问题实际上是双重的:

  1. Chrome在哪里存储PermissionLevel FOR EXTENSIONS的布尔值 - 因为它们不会出现在授予/阻止的SITES的正常列表中。如果不在用户界面中,此设置是否在配置文件中公开,或者目前在Chrome> 65中是否有任何方式让用户反对此决定?
  2. 是否有一个程序化方法可以由后端的扩展开发人员实现,以检查是否已经发生这种情况并重新提示用户改变主意并重新授予该权限?我在这里发现了一些非正式的帖子,说常识说不能避免恶意骚扰用户等但我找不到任何正式的东西。
javascript google-chrome google-chrome-extension google-chrome-app
2个回答
1
投票

好吧,我可以在打开这个官方Chromium bug之后确认它正在等待分类并且显然目前没有解决方法:

https://bugs.chromium.org/p/chromium/issues/detail?id=825497

我还做了进一步的测试,以确定您可以使用扩展程序中的ID并将其添加到“网站”设置中,这些设置也基于该行为,由于某些设置未保存,没有任何预期效果等,这似乎是另一个错误。

我将发布此截至04-09-2018的当前答案:

“一旦被阻止,就无法重新启用针对特定扩展的Chrome桌面通知”。

如果任何人都可以在这里发布成功的解决方法,以任何方式在用户点击“阻止来自此应用程序的所有通知”之后以任何方式重新启用扩展程序的正常桌面通知(使用Tampermonkey测试),以简单地撤销那个很棒的决定我认为,只要这一点仍未得到答复,我就会倾向于相信没有当前的方法,而且它只是一个(明显的)UI错误。


0
投票

可悲的是,唯一可以解决此问题的方法是删除扩展并重新安装。

这个问题已经开放了将近半年。在这一点上,不要期待很快就能解决问题。 https://bugs.chromium.org/p/chromium/issues/detail?id=825497

如果您受到影响,请在上面的链接中标明此问题。

© www.soinside.com 2019 - 2024. All rights reserved.