use "navigator.serviceWorker.controller.postMessage" it will alway "TypeError: Cannot read property 'postMessage' of null"
use "navigator.serviceWorker.controller.postMessage" it will alway "TypeError: Cannot read property 'postMessage' of null"
我有一个问题,在注册 service worker 后 navigator.serviceWorker.controller
总是 null
。
我想使用 postMessage
向 service worker 发送消息。
然而,navigator.serviceWorker.controller
总是returnsnull
,
并显示错误 TypeError: Cannot read property 'postMessage' of null
.
有时我可以使用navigator.serviceWorker.controller.postMessage
,但其他时候navigator.serviceWorker.controller
returns null
,
我不确定如何处理这个问题...
我做了一些研究,但我仍然无法解决我的问题...
有人有什么想法吗?
谢谢,
特里
这是我创建的测试页。
https://terrylee7788.github.io/test_web_worker.html
使用navigator.serviceWorker.ready
navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {
// Let's see if you have a subscription already
return serviceWorkerRegistration.pushManager.getSubscription();
})
.then(function(subscription) {
if (!subscription) {
// You do not have subscription
}
// You have subscription.
// Send data to service worker
navigator.serviceWorker.controller.postMessage({'data': dataToServiceWorker});
})
我有一个问题,在注册 service worker 后 navigator.serviceWorker.controller
总是 null
。
我想使用 postMessage
向 service worker 发送消息。
然而,navigator.serviceWorker.controller
总是returnsnull
,
并显示错误 TypeError: Cannot read property 'postMessage' of null
.
有时我可以使用navigator.serviceWorker.controller.postMessage
,但其他时候navigator.serviceWorker.controller
returns null
,
我不确定如何处理这个问题...
我做了一些研究,但我仍然无法解决我的问题...
有人有什么想法吗?
谢谢, 特里
这是我创建的测试页。 https://terrylee7788.github.io/test_web_worker.html
使用navigator.serviceWorker.ready
navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {
// Let's see if you have a subscription already
return serviceWorkerRegistration.pushManager.getSubscription();
})
.then(function(subscription) {
if (!subscription) {
// You do not have subscription
}
// You have subscription.
// Send data to service worker
navigator.serviceWorker.controller.postMessage({'data': dataToServiceWorker});
})