javascript - 收到推送通知时如何更改范围变量
问题描述
我的网络应用程序中有一个通知图标,显示通知的数量。应用程序的前端是使用 angularjs 制作的。
图标的计数存储在一个$rootScope
变量中。我想在收到推送通知时增加变量(或调用返回计数的 Web 服务)。
serviceworker.js 文件无权访问 angularjs 中的范围变量。如何从服务人员更改计数变量的值。
我想在localStorage
项目上添加一个更改事件侦听器。
登录后,我将创建一个项目。
localStorage.setItem('notifCount', 0);
当我收到推送通知时,我会增加notifCount
inlocalStorage
并serviceworker.js
触发 change 事件。我可以localStorage
在其中一个控制器文件中添加更改侦听器并调用 Web 服务或只是增加$rootScope
变量。
但即使有人在开发工具中手动更改 localStorage,也会发生这种情况。
我想知道我是否可以这样做(如果它是正确的方法)还是有更好的方法。我不觉得这是正确的方法。
解决方案
数据通过消息系统在工作线程和主线程之间发送——双方使用postMessage()方法发送消息,并通过事件处理程序响应消息onmessage
(消息包含在 Message 事件的数据属性中。)数据被复制而不是共享。
有关详细信息,请参阅
推荐阅读
- ruby - .find_all 查找用户输入是否匹配任何值(写入数组)
- ios - Flutter: How to fix ITMS-90809: Deprecated API Usage - Apple 将停止接受使用 UIWebView API 的应用程序提交
- c# - 删除 EPPlus 散点图上的轴标记
- latex - 这是什么围兜?谁能指出?
- python - 多个类之间的异步
- unix - Unix 性能改进 - 可能正在使用 AWK
- c# - 添加或修改列表值
- android - Onclick 有延迟
- javascript - 我如何使用 vanilla JS 创建引导进度条,如果不是 vanilla 的话
- php - 如何滚动 PHP-Postgres SELECT FROM 查询的结果?