【问题标题】:Google chrome web push api bug谷歌浏览器网页推送 api 错误
【发布时间】:2015-12-08 14:06:35
【问题描述】:

这是什么错误?当发送网络推送浏览器时,谷歌浏览器“有时”会给出第二条带有文本的消息:“此站点已在后台更新。”

我想让它只有一条消息

我在源 Chrome 中找到的这段文字 该网站已在后台更新。 github.com/scheib/chromium/blob/master/chrome/app/resources/generated_resources_en-GB.хтб

如何摆脱这条消息。

【问题讨论】:

标签: google-chrome google-cloud-messaging push asp.net-web-api pushapps


【解决方案1】:

它的工作方式是一个功能而不是一个错误。 这是一个解释您在 Chrome 中的情况的问题:https://code.google.com/p/chromium/issues/detail?id=437277

Chromium 代码中更具体的代码注释: https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/push_messaging/push_messaging_notification_manager.cc&rcl=1449664275&l=287

可能发生的情况是某些发送到客户端的推送消息没有显示通知。

希望有帮助

【讨论】:

  • 谢谢,我发现了我的问题f4.s.qip.ru/oHGoukxx.png 在第一个版本中我没有写这个命令。结果:有时浏览器会在后台显示站点已更新的消息
【解决方案2】:

这种情况经常发生的原因是返回给event.waitUntil() 的承诺没有解决并显示通知。

可能显示默认推送通知的示例:

function handlePush() {
  // BAD: The fetch's promise isn't returned
  fetch('/some/api')
  .then(function(response) {
    return response.json();
  })
  .then(function(data) {
    // BAD: the showNotification promise isn't returned
    showNotification(data.title, {body: data.body});
  });
}

self.addEventListener(function(event) {
   event.waitUntil(handlePush());
});

你可以这样写:

function handlePush() {
  // GOOD
  return fetch('/some/api')
  .then(function(response) {
    return response.json();
  })
  .then(function(data) {
    // GOOD
    return showNotification(data.title, {body: data.body});
  });
}

self.addEventListener(function(event) {
   const myNotificationPromise = handlePush();
   event.waitUntil(myNotificationPromise);
});

这很重要的原因是浏览器等待传递给 event.waitUntil 的承诺来解决/完成,以便他们知道服务工作者需要保持活跃和运行。

当 Promise 解决了推送事件时,Chrome 将检查通知是否已显示,并且它是否属于 Chrome 是否显示此通知的竞争条件/特定情况。最好的办法是确保你有一个正确的承诺链。

我在这篇文章中添加了一些关于承诺的额外注释(参见:'Side Quest: Promises'https://gauntface.com/blog/2016/05/01/push-debugging-analytics

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 2014-09-16
    • 1970-01-01
    • 2022-10-31
    • 2017-08-09
    • 2010-09-07
    • 2017-11-24
    • 2016-01-22
    相关资源
    最近更新 更多