在Google Chrome for Android上调用Javascript通知API无法直接从网页上运行

在Google Chrome for Android上调用Javascript通知API无法直接从网页上运行,javascript,android,google-chrome,notifications,progressive-web-apps,Javascript,Android,Google Chrome,Notifications,Progressive Web Apps,我正在使用JavaScript通知API向我的用户显示一条小消息。它适用于我测试过的所有桌面浏览器,包括Chrome…但不适用于Android的Chrome(至少是KitKat)。我读到的所有信息都表明,Android Chrome从2015年4月开始支持通知API,该应用甚至有通知权限设置……但当我从其中调用新通知(…)时,什么都没有发生。事实上,即使是官方的Mozilla通知API演示页面也没有显示它们,尽管它能够获取权限信息等 要使通知与Android Chrome兼容,我需要做些特殊的事

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


要使通知与Android Chrome兼容,我需要做些特殊的事情吗?

在Android Chrome上,您只能通过浏览器打开通知。service worker是一个在浏览器旁边运行的脚本,即使页面或浏览器当前已关闭,也可以加载该脚本

服务工作者要求背后的主要原因是通知可以超过浏览器的生命周期(即,用户可以关闭浏览器),并且通知仍然处于活动状态,因此当用户单击通知时,Android需要唤醒“某物”,该“某物”就是服务工作者

这是对Web和Chrome上通知的当前状态的一个很好的介绍-它稍微关注推送消息,但也包含了如何触发来自服务工作者的通知的所有细节


这看起来像是一个额外的跳转,但实际上是一个净好处:即使在浏览器关闭时单击,您的通知仍将有效。

检查此兼容性:

“部分支持”虽然正如金兰所提到的,但Web服务工作者也可以这样做

navigator.serviceWorker.register('sw.js');
Notification.requestPermission(函数(结果){
如果(结果==‘已授予’){
navigator.serviceWorker.ready.then(函数(注册){
registration.showNotification(“服务人员通知”);
});
}

});您在这里尝试过推送通知示例吗?哇!因此,听起来谷歌不仅需要使用自己的专有通知系统,还需要HTTPS才能使用。那…真烦人。感谢您的帮助。为Chrome扩展提供的
Chrome通知API
与为移动应用提供的
Chrome推送通知API
之间存在差异。chrome应用程序的通知API示例。几天前,他们讨论了ChromeDevSummit中的推送通知API,但仍然存在一些限制。这是一种相关的。。。有人知道这个问题吗????谢谢