Javascript 侦听PWA服务人员中的按钮单击
我试图按照下面的PWA推送通知示例进行操作,但有一个关于服务人员的一般性问题 在我的服务人员中,我想向按钮/锚标记添加一个侦听器 我的服务人员姓名缩写如下:Javascript 侦听PWA服务人员中的按钮单击,javascript,dom,service-worker,progressive-web-apps,Javascript,Dom,Service Worker,Progressive Web Apps,我试图按照下面的PWA推送通知示例进行操作,但有一个关于服务人员的一般性问题 在我的服务人员中,我想向按钮/锚标记添加一个侦听器 我的服务人员姓名缩写如下: if ("serviceWorker" in navigator && "PushManager" in window) { navigator.serviceWorker .register("./scripts/my.serviceworker.js", { scope: "/" })
if ("serviceWorker" in navigator && "PushManager" in window) {
navigator.serviceWorker
.register("./scripts/my.serviceworker.js", { scope: "/" })
.then(function (swReg) {
console.log("Service Worker Registered: ", swReg);
swRegistration = swReg;
initializeUI();
});
};
函数initializeUI需要包含click事件的侦听器,以便用户可以订阅/取消订阅
function initializeUI() {
var pushButton = document.querySelector(".pwa-pushbutton");
pushButton.addEventListener("click", function () {
console.log("Button pushed");
if (isSubscribed) {
// TODO: Unsubscribe user
} else {
subscribeUser();
}
});
但是按钮变量没有定义
如何将侦听器事件添加到我的service worker JS文件中DOM上的元素?service Workers无法侦听DOM,也无法直接与DOM交互。所有DOM活动(如单击)都需要通过postMessage发送给服务人员 应用程序: 服务人员:
服务人员不能直接聆听DOM,也不能直接与DOM交互。所有DOM活动(如单击)都需要通过postMessage发送给服务人员 应用程序: 服务人员:
隐马尔可夫模型。。实际上,这个代码应该可以工作。据我所知,您的代码初始化不在serviceworker.js文件中,因此应该可以访问dom.Hmm。。实际上,这个代码应该可以工作。据我所知,您的代码初始化不在serviceworker.js文件中,因此应该可以访问dom;另一种方法是:将事件从服务工作者发送到应用程序?再见,谢谢;另一种方法是:将事件从服务工作者发送到应用程序?看见
function onClick(event => {
navigator.serviceWorker.controller.postMessage({
value1: 'hello',
value2: 'there'
});
})
self.addEventListener('message', event => {
const val1 = event.data.value1,
val2 = event.data.value2;
});