Javascript 通知显示为“弹出”

问题描述 投票:0回答:1

目前,我正在开发 PWA。

我想实现一个推送通知系统,幸运的是浏览器公开了Push API。到目前为止我已经完成了这部分工作,我可以在 Service Worker 中接收推送事件。

但是当显示通知时,通知会在后台“静默”接收。

我希望发生什么: Image of pop up notification

但是当安装 PWA 时,默认情况下会禁用这种“弹出”样式的消息(至少我是这么认为的)。默认行为导致通知仅在通知托盘中购买选项,而不会显示在弹出窗口上方。

当我进入 PWA 通知的设置时,有一个启用弹出通知的选项:“显示为弹出窗口” Notification settings 当我启用此选项时,我得到了所需的结果。不过,我希望这是默认行为,而不必告诉网络应用程序的每个用户更改其设备上的设置。

我在服务工作线程中的推送事件监听器中使用了通知代码。

 self.registration.showNotification('New message', {
    body: payload,
 });

在 Samsung Galaxy S22 上使用 Chrome 作为(默认)浏览器进行测试。

有谁知道为什么这是默认行为以及是否有解决方案?

提前致谢

javascript browser push-notification progressive-web-apps
1个回答
0
投票

我有一个网络应用程序,并且添加了通知功能,但我必须在 Galaxy s22 设置上手动自定义它,以使其弹出并发出特定的声音。 为了从 Service Worker 推送通知,需要调用

self.registration.showNotification(title, options) 
,其中“title”是通知标题的字符串,“options”是一个对象,其中包含用于自定义通知的属性。 从该功能的 MDN 参考站点 https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification 可以清楚地看出,您想要实现的此功能是不可能的,因为无法在选项对象中指定通知的弹出行为,因此不幸的是,此功能在浏览器上不可用。

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