我有一个类似于闲暇之类的网络应用程序,用于聊天;当用户离线时,我们会发送“您有新消息”的通知。该通知是html5推送通知,因此在用户尚未打开Web应用程序时可以使用。
我最近为全天聊天的人创建了一个可执行应用程序。但是问题在于,当出现新消息时:exe应用程序和浏览器都会发出通知。
所以我的问题是:我们能否确定Web应用程序和exe应用程序是否都在一台设备中处于活动状态?这样我们就可以禁止其中一项通知。 PC是否具有类似通用ID的内容,我们也可以从浏览器中的JavaScript和可执行文件中访问它?
注意:-我在服务器中存储了有关Web应用处于活动状态且exe已处于活动状态的信息,我只需要查找它们是否来自同一设备。
先谢谢了。请让我知道您的解决方案。
答案 0 :(得分:0)
经过反复尝试并尝试了不同的解决方案后,我找到了解决方案。
我正在exe应用程序中嵌入一个http服务器,这使我可以与Web应用程序进行通信。在Web应用程序中,我添加了一个Web Worker,它将每10秒ping一次exe应用服务器。如果收到响应,则表示exe应用处于活动状态,然后我通过调用api关闭了服务器上的通知。这也将确保在退出exe应用程序时,Web worker不会收到任何响应,表示exe不处于活动状态,因此它将激活通知。
现在另一个问题是-安装该应用程序后,用户没有打开Web应用程序,并且仍然收到两个通知。为了解决这个问题-我在exe应用程序首次启动时打开了Web应用程序的URL,它检测到状态并关闭了浏览器通知。在同一过程中-我还将browserId(用于标识浏览器的唯一GUID)保存到exe应用程序,并且每当exe应用程序启动时,我都会调用api来关闭这些browserId的通知。
希望这对某人有帮助。