选项卡不在焦点时的 Firebase 通知

Posted

技术标签:

【中文标题】选项卡不在焦点时的 Firebase 通知【英文标题】:Firebase notification when tab is not in focus 【发布时间】:2018-03-17 08:22:33 【问题描述】:

我在我的网络上实现了一个 firebase 推送通知,我想在收到推送时触发一个功能并播放声音,当网页处于焦点时我的代码工作正常但当它在后台时它只显示我该通知的弹出窗口并且该功能未触发

这是我的代码:

  messaging.onMessage(function(payload)
    $( "#reload" ).trigger( "click" );
    var audio = new Audio('************************.mp3');
    audio.play();
    console.log('onMessage',payload);

  );

【问题讨论】:

【参考方案1】:

来自 Handle messages when your web app is in the background 上的 Firebase 文档:

应用在后台时收到的所有消息都会在浏览器中触发显示通知。您可以在来自应用服务器的发送请求中或使用客户端上的服务工作线程逻辑指定此通知的选项,例如标题或点击操作。

可以使用messaging.setBackgroundMessageHandler(...) 为数据消息设置自己的后台处理程序。但是该处理程序将在服务工作者中运行,因此无法播放声音。有关这方面的示例,请参阅Setting notification options in the service worker。

【讨论】:

以上是关于选项卡不在焦点时的 Firebase 通知的主要内容,如果未能解决你的问题,请参考以下文章

选项卡不在焦点时进度条停止

如何将焦点放在创建桌面通知的 Chrome 选项卡上?

单击 QDockWidget 的选项卡时的通知?

按下锁定/主页按钮时的通知,单击返回选项卡片段时的通知

如果我的网页未在任何选项卡中打开,则禁用通知

AngularFire2:通过多个浏览器选项卡通知注销