我目前正在研究服务人员来处理浏览器中的推送通知。目前我遇到了“软件注册失败错误”:
软件注册失败,出现错误 SecurityError: 无法注册 ServiceWorker: 不支持当前源 ('null') 的 URL 协议。
Check client1.html
and service-worker.js
文件如下:
service-worker.js
console.log('Started', self);
self.addEventListener('install', function(event) {
self.skipWaiting();
console.log('Installed', event);
});
self.addEventListener('activate', function(event) {
console.log('Activated', event);
});
self.addEventListener('push', function(event) {
console.log('Push message received', event);
});
客户端1.html
<!doctype html>
<html>
<head>
<title>Client 1</title>
</head>
<body>
<script>
if('serviceWorker' in navigator){
// Register service worker
navigator.serviceWorker.register('service-worker.js').then(function(reg){
console.log("SW registration succeeded. Scope is "+reg.scope);
}).catch(function(err){
console.error("SW registration failed with error "+err);
});
}
</script>
</body>
</html>
任何人都可以帮助解决这个问题吗?
Solved:首先,Service Worker 只能在 https 或 localhost 的安全模式下工作。
它不适用于 file:// 或 http 等本地资源。
第二个问题是在注册过程中。
navigator.serviceWorkerContainer
.register('service-worker.js')
.then(function(reg){
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)