javascript - FCM 通知适用于 Chrome,但不适用于 Firefox
问题描述
我完全无法让 FCM 通知在 Firefox 上运行,而它在 Chrome 上完美运行。
当我要求 Firebase SDK 返回当前的身份验证令牌时,承诺返回“null”,这意味着它无法获取它。主要是由于一些许可的东西。
console.log(Notification.permission);
打印“默认”,根据官方文档,与“拒绝”的含义相同。
如果我尝试使用firebase.messaging().requestPermission()
权限请求的任何一个版本或浏览器版本,则承诺永远不会解决,并且我看不到任何请求权限的弹出窗口。
我的 manifest.json 确实在权限字段中包含“通知”。
我在 Firefox 上使用web-ext
我有点绝望,令人难以置信的是,让网络扩展工作如此困难。
谢谢
解决方案
Web 通知 API 的工作方式与 API 略有不同browser.notifications
。为了使用Notifications
API,必须首先向用户请求权限,如这里示例所示。这是您在普通网页中会做的事情。
要在浏览器扩展中使用通知,您必须notifications
在清单文件中设置权限,然后使用browser.notifications.create创建新通知。这不会提示用户弹出窗口要求允许通知,因为此权限已在清单文件中授予。
推荐阅读
- c - 为什么我的 printf 总是重复第一个输出
- r - 如果与其他列匹配,则为 DT 表列着色
- ios - 将 NSArray (Swift) 转换为向量 (C++)
- python - 如何解决此错误“输入用尽”
- mysql - MYSQL:选择一列的 SUM 但该列基于另一个行 ID
- google-chrome - 如何检查是否在 Chromium/Chrome 中嵌入/启用了 Google 密钥?
- reactjs - 输入“承诺”
' 不能分配给在锚标记中键入 'string' - python - 设置 UTF-8 编码后未写入 CSV 文件的更改
- reactjs - 在 ReactJs 中单击外部时输入值消失
- python - `s = (iowa_file_data.dtypes == 'object')` 如何使`s` 成为`Series` 类型的变量