从Web应用程序显示系统托盘通知或桌面通知

时间:2014-09-13 16:13:12

标签: java swing notifications

我使用具有登录功能的J2EE 6.0在Java中创建了一个Web应用程序。当用户登录到应用程序时,计时器从59:59(分钟:秒)开始并持续减少直到3:00。当剩下3分钟时,它会向用户显示弹出,要求退出再次延长他们的时间/会话,然后再回到59:59。

我的问题是,如果用户正在做一些其他的工作说在Outlook上或在新的窗口/浏览器(Firefox等)上通过互联网浏览其他东西。如何通知用户他的会话/时间将过期。此应用程序仅适用于Microsoft Windows Internet Explorer

我发现这些链接用于显示桌面通知,但不幸的是我的应用程序特定于仅在Internet Explorer上运行

What ways are out there to display a desktop notification from a web app?

How do Stack Overflow desktop notifications work?

所以我无法使用桌面通知。

我以为我会创建一个 swing应用程序来显示Windows系统托盘中的通知弹出窗口,说明“你的会话即将到期”#39;但我被困在如何在客户端机器上运行。 我听说过一些叫做 Java Web Start AjaxSwing 等的东西。 使用 Java Web Start 软件,用户可以通过单击网页中的链接来启动Java应用程序。它需要客户端系统中的JRE。 Java Web Start将要求用户下载 Java插件,它将下载一个令人讨厌的JRE(如果在客户端系统中找不到)。

AjaxSwing 会将Swing应用程序转换为HTML,Javascript和CSS,因此我不确定它是如何从浏览器中显示出来的,以便在系统托盘中显示弹出窗口。我认为这将继续坚持浏览器。

我搜索了选项卡选项的闪烁,但它没有闪烁窗口任务栏中的选项卡。

我在某处为Windows增长,但我不确定它是否对我有帮助。请告诉我。 请建议我如何通知用户他的会话将会过期。我已经知道我可以通过电子邮件进行通知。请帮助我寻求进一步追求的创新理念和解决方案。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并使用jquery notification plugin作为解决方法,你也可以在插件回调中使用“onShow”播放声音或其他什么来确保用户得到通知

答案 1 :(得分:0)

尝试使用Google Chrome:

function notifyBrowser(title, desc, url) {
    if (Notification.permission !== "granted") {
        Notification.requestPermission();
    } else {
        var notification = new Notification(title, {
            icon: 'http://YourWebsite.com/logo.png',
            body: desc,
        });
        /* Remove the notification from Notification Center when clicked.*/
        notification.onclick = function() {
            window.open(url);
        };
        /* Callback function when the notification is closed. */
        notification.onclose = function() {
            console.log('Notification closed');
        };
    }
}

所以,只调用函数:

notifyBrowser('Pay attention', 'You have new notifications', 'www.stackoverflow.com');

font:http://www.9lessons.info/2015/11/display-browser-notifications-from-web.html