Ice*_*unk 8 javascript notifications android google-chrome progressive-web-apps
我正在使用 JavaScript 通知 API 向我的用户显示一条小消息。它适用于我测试过的所有桌面浏览器,包括 Chrome……但不适用于 Android 版 Chrome(至少是 KitKat)。我读过的所有内容都表明,截至 2015 年 4 月,Android Chrome 支持 Notification API,并且该应用程序甚至具有通知权限设置……但是当我从其中调用 new Notification(...) 时什么也没有发生。事实上,即使是官方的 Mozilla Notification API 演示页面也没有显示它们,尽管能够获取权限信息等。
我需要做什么特别的事情才能使通知与 Android Chrome 兼容吗?
在 Chrome for Android 上,您只能通过Service Worker打开通知。Service Worker 是一个与浏览器一起运行的脚本,即使页面或浏览器当前关闭也可以加载。
Service Worker 要求背后的主要原因是,通知的生命周期可以超过浏览器的生命周期(即用户可以关闭浏览器)并且通知仍将处于活动状态,因此当用户点击通知时,Android 需要唤醒“东西”起来,这个“东西”就是Service Worker。
本通知指南很好地介绍了 Web 和 Chrome 中通知的当前状态 - 它重点关注推送消息,但也包含如何触发来自 Service Worker 的通知的所有详细信息。
这似乎是一个额外的障碍,但它实际上是一个净收益:即使浏览器关闭,您的通知在单击时仍然有效。
检查兼容性: http: //caniuse.com/#feat=notifications
“部分支持” 尽管正如 Kinlan 提到的,Web Service Workers 也是可以实现的。
navigator.serviceWorker.register('sw.js');
Notification.requestPermission(function(result) {
if (result === 'granted') {
navigator.serviceWorker.ready.then(function(registration) {
registration.showNotification('Notification with ServiceWorker');
});
}
});Run Code Online (Sandbox Code Playgroud)
该sw.js文件可以只是一个零字节文件。
| 归档时间: |
|
| 查看次数: |
10734 次 |
| 最近记录: |