收到推送通知时如何更改范围变量

时间:2019-06-17 09:20:28

标签: javascript angularjs push-notification web-worker

我的Web应用程序中有一个通知图标,其中显示了通知数量。该应用程序的前端是使用angularjs制作的。

图标的计数存储在$rootScope变量中。我想在收到推送通知时增加变量(或调用返回计数的Web服务)。

serviceworker.js文件无权访问angularjs中的范围变量。如何从服务工作人员更改计数变量的值。

我想到了要在localStorage项目上添加更改事件侦听器。

登录后,我将创建一个项目。

localStorage.setItem('notifCount', 0);

当我收到推送通知时,我将在notifCount的{​​{1}}中将localStorage递增,并将触发change事件。我可以在一个控制器文件中添加serviceworker.js更改侦听器并调用Web服务,或者仅递增localStorage变量。

但是,即使有人在开发工具中手动更改localStorage,也会发生这种情况。

我想知道我是否可以这样做(如果这是正确的方法)还是有更好的方法。我觉得这不是正确的方法。

1 个答案:

答案 0 :(得分:0)

数据通过消息系统在工作线程和主线程之间发送-双方使用postMessage()方法发送消息,并通过onmessage事件处理程序响应消息(包含消息在Message事件的data属性中。)将复制数据,而不是共享数据。

有关更多信息,请参见