我想在桌面和移动设备上为我的域实施推送通知。在桌面上,一切都按预期工作,我可以从我的服务器发送推送到测试设备。
在Chrome for Android上,我甚至无法注册服务工作者。我已经在OnePlus 3和华为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>
弹出第一个警报,以便浏览器支持服务工作者和推送通知。第二个由于某种原因没有在移动铬上弹出,但适用于桌面铬!我错过了什么吗?
代码位于名为test.php
谢谢!
答案 0 :(得分:0)
更改“ ./sw.js”。因为如果不使用点,则意味着位于服务器的根目录中
答案 1 :(得分:0)
尝试不要在文件名前使用./
,而要简单地使用文件名sw.js
。我也遇到了同样的问题,也许this会有所帮助