我正在使用 JavaScript Notification API 向我的用户显示一条小消息。它适用于我测试过的所有桌面浏览器,包括 Chrome……但不适用于 Android 版 Chrome(至少是 KitKat)。我读过的所有内容都说 Android Chrome 支持截至 2015 年 4 月的 Notification API,并且该应用程序甚至具有通知权限设置......但是当我从其中调用 new Notification(...) 时没有任何反应。事实上,即使是官方的 Mozilla Notification API 演示页面也没有显示它们,尽管能够获取权限信息等。
要使通知与 Android Chrome 兼容,我需要做些什么特别的事情吗?
最佳答案
在 Android 版 Chrome 上,您只能通过 Service Worker 打开通知。 . Service Worker 是与浏览器一起运行的脚本,即使当前关闭页面或浏览器也可以加载。
service worker 要求背后的主要原因是通知可以超过浏览器的生命周期长度(即用户可以关闭浏览器)并且通知仍将处于 Activity 状态,因此当用户点击通知时 Android需要唤醒“某物”,这个“某物”就是 Service Worker。
这Notification Guide很好地介绍了 Web 和 Chrome 中通知的当前状态 - 它稍微侧重于推送消息,但也包含有关如何从 Service Worker 触发通知的所有详细信息。
这似乎是一个需要跳过的额外环节,但它实际上是一个净 yield :即使浏览器关闭,您的通知在点击时仍然有效。
关于javascript - 在 Google Chrome for Android 上调用 Javascript Notification API 不能直接从网页工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33859969/