node-webkit如何显示WebQQ的桌面提醒

发布于 2022-08-29 18:49:19 字数 2729 浏览 13 评论 0

0x00 背景

  1. WebQQ出了一个新的版本叫SmartQQ的,我觉得还挺适合用在Linux环境下的;
  2. 于是就有了打算用node-webkit来运行它;
  3. github地址: https://github.com/hillwah/nw-SmartQQ

0x01 目的

  1. 我已经用node-webkit把它给包起来,看起来好不错;
  2. 不过默认在Chrome下是有消息提醒的,就是Chrome桌面通知功能;
  3. 但是在node-webkit下就没有了桌面通知,因为我知道node-webkit也是用的Chrome,所以想知道如何才能实现这个桌面通知。希望有人能帮忙,非常感谢!

(我是菜鸟一个,希望各位大牛能不吝赐教,谢谢)

0x02 index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Smart QQ</title>
  </head>
  <body>
    <script>
    var isShowWindow = true;
    var gui = require('nw.gui');
    var win = gui.Window.get();
    var tray = new gui.Tray({title:'Smart QQ', icon:'app/img/alloylogo.png'});

    //Close window to hide;
    win.on('close', function() {
        this.hide();
        isShowWindow = false;
    });

    tray.tooltip = 'Smart QQ';

    //Menu
    var menu = new gui.Menu();
    menu.append(new gui.MenuItem({
        type: 'normal',
        label: 'Show/Hide',
        click: function() {
            if(isShowWindow) {
                win.hide();
                isShowWindow = false;
            } else {
                win.show();
                isShowWindow = true;
            }
        }
    }));
    menu.append(new gui.MenuItem({
        type: 'normal',
        label: 'Quit',
        click: function() {
            gui.App.quit();
        }
    }))
    tray.menu = menu;

    //Click to show/hide;
    tray.on('click',
        function() {
            if(isShowWindow) {
                win.hide();
                isShowWindow = false;
            } else {
                win.show();
                isShowWindow = true;
            }
        });

    //Load Web QQ;
    location='http://w.qq.com/';
    </script>
  </body>
</html>

0x03 package.json

{
    "name": "Smart QQ",
    "main": "app/index.html",
    "version": "0.1",
    "window": {
        "icon": "app/img/alloylogo.png",
        "toolbar": true,
        "width": 300,
        "height": 500
    }
}

0x04 目前的效果

Tray效果
效果图

0x05 问题补充

  1. 发现了一个问题,就是即使在Chrome中,如果当前tab就是QQ的话,那是不会有桌面提醒的,那node-webkit没有tab自然就没有提醒,所以。。怎样才能让QQ在当前tab也有提醒呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

老子叫无熙 2022-09-05 18:49:19

直接用 Notification 不行么?另外还搜到了这个项目,虽然是两年前的了不过权当参考一下吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文