知识 分享 互助 快乐十分玩法与奖金

    懒人建站专注于网页素材下载,提供网站模板、网页设计、ps素材、图片素材等,服务于【个人站长】【网页设计师】和【web开发从业者】的代码素材与设计素材网站。

    懒人建站提供网页素材下载、网站模板
    知识 分享 互助!

    陕西快乐十分走势图表:electron程序显示在右下角托盘

    作者:佳明妈 来源:云计算 2017-10-28 人气:
    electron程序显示在右下角托盘的方法,使用electron实现将应用程序加入系统托盘demo,完整demo演示

    快乐十分玩法与奖金 www.j63d3.cn electron程序显示在右下角托盘的方法,使用electron实现将应用程序加入系统托盘demo

    一、将应用程序加入系统托盘

    回到正文, 微信启动时,系统托盘中会自动添加一个微信启动程序图标使用electron如何实现这种效果昵?

    以下是使用electron实现将应用程序加入系统托盘demo

    //electron
    const electron = require('electron');
    const app = electron.app;
    
    const path = require('path');
    
    //用一个 Tray 来表示一个图标,这个图标处于正在运行的系统的通知区 ,通常被添加到一个 context menu 上.
    const Menu = electron.Menu;
    const Tray = electron.Tray;
    
    //托盘对象
    var appTray = null;
    
    function createWindow() {
        // Create the browser window.
        mainWindow = new BrowserWindow({
            width: 1000,
            height: 600,
            resizable: true,
            title: '将应用程序添加至系统托盘',
            skipTaskbar:false
        })
        //系统托盘右键菜单
        var trayMenuTemplate = [
            {
                label: '设置',
                click: function () {} //打开相应页面
            },
             {
                label: '意见反馈',
                click: function () {}
            },
            {
                label: '帮助',
                click: function () {}
            },
            {
                label: '关于微信',
                click: function () {}
            },
            {
                label: '退出微信',
                click: function () {
                    //ipc.send('close-main-window');
                     app.quit();
                }
            }
        ];
    
        //系统托盘图标目录
        trayIcon = path.join(__dirname, 'tray');
    
        appTray = new Tray(path.join(trayIcon, 'app.ico'));
    
        //图标的上下文菜单
        const contextMenu = Menu.buildFromTemplate(trayMenuTemplate);
    
        //设置此托盘图标的悬停提示内容
        appTray.setToolTip('This is my application.');
    
        //设置此图标的上下文菜单
        appTray.setContextMenu(contextMenu);
    }
    
    // This method will be called when Electron has finished
    // initialization and is ready to create browser windows.
    // Some APIs can only be used after this event occurs.
    app.on('ready', createWindow);
    
    
    // Quit when all windows are closed.
    app.on('window-all-closed', function() {
        // On OS X it is common for applications and their menu bar
        // to stay active until the user quits explicitly with Cmd + Q
        if (process.platform !== 'darwin') {
            app.quit()
        }
    })
    

    二、系统托盘程序右键菜单

    就是步骤一声明 trayMenuTemplate 对象,加入托盘上下文菜单 //设置此图标的上下文菜单 appTray.setContextMenu(contextMenu); 即可,

    而进入右键菜单相应页面就要涉及主线程与渲染线程交互.对线程不了解的可参考之前写的博客主线程与渲染线程之间通信

    三、托盘来电消息的闪烁

    像微信一样,推送一条未读新消息闪烁,其原理不同时刻图标切换,一张透明与不透明图标切换。

    //系统托盘图标闪烁
    var count = 0,timer = null;
        timer=setInterval(function() {
            count++;
            if (count%2 == 0) {
                tray.setImage(path.join(trayIcon, 'app.ico'))
            } else {
                tray.setImage(path.join(trayIcon, 'appa.ico'))
            }
        }, 600);
    
        //单点击 1.主窗口显示隐藏切换 2.清除闪烁
        tray.on("click", function(){
            if(!!timer){
                tray.setImage(path.join(appTray, 'app.ico'))
                //主窗口显示隐藏切换
                mainWindow.isVisible() ? mainWindow.hide() : mainWindow.show();
            }
    })
    

    四、加入未读的音频

    若对方发送一条未读消息,提示用户滴滴滴声音

    //playAudio
    function playAudio(){
        var audio = new Audio(__dirname + '/tray/app.wav');
        audio.play();
        setTimeout(function(){
            console.log("暂停播放....");
            audio.pause();// 暂停
        }, 800)
    }
    playAudio();
    

    完整代码demo

    //electron
    const electron = require('electron');
    const app = electron.app;
    
    const path = require('path');
    
    //用一个 Tray 来表示一个图标,这个图标处于正在运行的系统的通知区 ,通常被添加到一个 context menu 上.
    const Menu = electron.Menu;
    const Tray = electron.Tray;
    
    //托盘对象
    var appTray = null;
    
    //createWindow
    function createWindow() {
        // Create the browser window.
        mainWindow = new BrowserWindow({
            width: 1000,
            height: 600,
            resizable: true,
            title: '将应用程序添加至系统托盘',
            skipTaskbar:false
        })
        //系统托盘右键菜单
        var trayMenuTemplate = [
            {
                label: '设置',
                click: function () {} //打开相应页面
            },
             {
                label: '意见反馈',
                click: function () {}
            },
            {
                label: '帮助',
                click: function () {}
            },
            {
                label: '关于微信',
                click: function () {}
            },
            {
                label: '退出微信',
                click: function () {
                    //ipc.send('close-main-window');
                     app.quit();
                }
            }
        ];
    
        //系统托盘图标目录
        trayIcon = path.join(__dirname, 'tray');
        appTray = new Tray(path.join(trayIcon, 'app.ico'));
        //图标的上下文菜单
        const contextMenu = Menu.buildFromTemplate(trayMenuTemplate);
        //设置此托盘图标的悬停提示内容
        appTray.setToolTip('This is my application.');
        //设置此图标的上下文菜单
        appTray.setContextMenu(contextMenu);
    
    
    
        //系统托盘图标闪烁
        var count = 0,timer = null;
        timer=setInterval(function() {
            count++;
            if (count%2 == 0) {
                tray.setImage(path.join(trayIcon, 'app.ico'))
            } else {
                tray.setImage(path.join(trayIcon, 'appa.ico'))
            }
        }, 600);
    
        //单点击 1.主窗口显示隐藏切换 2.清除闪烁
        tray.on("click", function(){
            if(!!timer){
                tray.setImage(path.join(appTray, 'app.ico'))
                //主窗口显示隐藏切换
                mainWindow.isVisible() ? mainWindow.hide() : mainWindow.show();
            }
        })
    }
    // This method will be called when Electron has finished
    // initialization and is ready to create browser windows.
    // Some APIs can only be used after this event occurs.
    app.on('ready', createWindow);
    
    // Quit when all windows are closed.
    app.on('window-all-closed', function() {
        // On OS X it is common for applications and their menu bar
        // to stay active until the user quits explicitly with Cmd + Q
        if (process.platform !== 'darwin') {
            app.quit()
        }
    })
    

    转载://www.cnblogs.com/zjf-1992/p/7534944.html?utm_medium=referral&utm_source=debugrun
    QQ登录框的例子://www.cnblogs.com/Starts_2000/p/electron-qqlogin-demo.html

    ↓ 查看全文

    electron程序显示在右下角托盘由懒人建站收集整理,您可以自由传播,请主动带上本文链接

    快乐十分玩法与奖金就是免费分享,觉得有用就多来支持一下,没有能帮到您,懒人也只能表示遗憾,希望有一天能帮到您。

    electron程序显示在右下角托盘-最新评论

  • 吕梁:交口公安侦破“5.24”疯狂砸车玻璃盗窃案 2019-04-26
  • 厉害了!如何用数学解构太极图? 2019-04-07
  • “沙雕世界杯”作品亮相舟山 2019-04-07
  • 对外投资连续7个月增长(市场观察) 2019-04-04
  • 董卿白岩松朱广权 看看央视主持人大学就读啥院系 2019-04-03
  • 陈海滢的专栏作者中国国家地理网 2019-03-20
  • 黄坤明:努力开创中国政研会工作新局面 2019-03-16
  • 新型社交软件改变了我们的生活 春城壹网 七彩云南 一网天下 2019-03-15
  • 养生谣言肆虐 微信圈不可全信 2019-03-14
  • 国际在线:向世界报道中国,向中国报道世界 2019-03-14
  • 推动重庆各项事业沿着习近平总书记指引的方向奋力前行——华龙网 2019-03-13
  • 成都寻旧文章中国国家地理网 2019-03-13
  • 世界杯第二日精选 C罗力挽狂澜 伊朗20年首胜 2019-03-12
  • 成龙晒罕见旧照怀念父亲 三代同堂温馨和乐 2019-03-10
  • 北京经开·国际企业大道Ⅲ,北京北京经开·国际企业大道Ⅲ 2019-03-10
  • 707| 248| 214| 150| 360| 683| 528| 787| 366| 514|