在Android版Google Chrome上调用Javascript Notification API,无法直接从网页

Calling Javascript Notification API on Google Chrome for Android not working directly from a web page

本文关键字:网页 API Notification Google Android Chrome Javascript 调用      更新时间:2023-09-26

我正在使用JavaScript通知API向用户显示一条小消息。它适用于我测试过的所有桌面浏览器,包括Chrome。。。但不是安卓版的Chrome(至少是KitKat)。我读到的所有内容都表明,自2015年4月起,Android Chrome支持通知API,该应用程序甚至有通知权限设置。。。然而,当我在其中调用新的通知(…)时,什么都不会发生。事实上,即使是官方的Mozilla通知API演示页面也不会显示它们,尽管它可以获取权限信息等。

我需要做一些特别的事情来使通知与Android Chrome兼容吗?

在Chrome for Android上,您只能通过Service Worker打开通知。服务工作者是一个与浏览器一起运行的脚本,即使页面或浏览器当前关闭,也可以加载。

服务工作者要求背后的主要原因是,通知可以超过浏览器的使用寿命(即,用户可以关闭浏览器),并且通知仍然是活动的,因此,当用户点击安卓需要唤醒"某物"的通知时,这个"某物"就是服务工作者。

本通知指南很好地介绍了Web和Chrome中通知的当前状态-它稍微关注推送消息,但也提供了如何触发Service Worker通知的所有细节。

这看起来可能是一个额外的障碍,但实际上它是一个净好处:即使浏览器关闭,点击通知时仍然有效。

检查兼容性:http://caniuse.com/#feat=notifications

"部分支持"尽管正如Kinlan所提到的,这对于Web服务工作者来说是可能的。

navigator.serviceWorker.register('sw.js');
Notification.requestPermission(function(result) {
  if (result === 'granted') {
    navigator.serviceWorker.ready.then(function(registration) {
      registration.showNotification('Notification with ServiceWorker');
    });
  }
});

sw.js文件可以只是一个零字节的文件。

信用到期:HTML5通知在移动Chrome 中不起作用