我想在桌面和移动设备上为我的域实现推送通知。在桌面上,一切都按预期工作,我能够将推送从我的服务器发送到测试设备。
在 Android 版 Chrome 上,我什至无法注册服务 worker 。我已经在 OnePlus 3 和 Huawei Mate 9 上测试了以下代码,这些都是最新且功能强大的设备,我实际上收到了关于它们的网络通知。
这是我使用的代码:
<script type="text/javascript">
if('serviceWorker' in navigator && 'PushManager' in window) {
alert('best');
window.addEventListener('load', function() {
navigator.serviceWorker.register('/sw.js').then(function(registration) {
alert('test');
});
});
}
</script>
第一个警报弹出,因此浏览器支持服务 worker 和推送通知。由于某种原因,第二个不会在移动 chrome 上弹出,但可以在桌面 chrome 上运行!我错过了什么吗?
代码位于名为 test.php
的页面上
谢谢!
最佳答案
更改“./sw.js”。因为如果您不使用点,则表示位于服务器的根目录中
关于javascript - Service Worker 未在移动版 Chrome 上注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45618397/