猿问

electron中用快捷键创建的窗口是否可以保证唯一?

在app.on('ready')中注册快捷键


if(!globalShortcut.isRegistered('CommandOrControl+Alt+S')){

      globalShortcut.register('CommandOrControl+Alt+S', function () {

        // 跳出的内容

        const searchPath = `file://${__dirname}/public_html/search.html`;

        let searchWin = new BrowserWindow({width: 400, height: 275});

        searchWin.loadURL(searchPath);

        searchWin.show();

        searchWin.on('close', ()=>{

          searchWin = null;

        })

      });

    }

多次使用ctrl+alt+s 会生成很多这个页面, 是否有方法可以确保这个页面未关闭的情况下,呼出这个页面,否则就创建这个页面。


忽然笑
浏览 360回答 1
1回答

沧海一幻觉

...你把 searchWin 这个变量保存一下, 或者提高到和 app 一样的层次let searchWin = null;if(!globalShortcut.isRegistered('CommandOrControl+Alt+S')){      globalShortcut.register('CommandOrControl+Alt+S', function () {        // 跳出的内容        if (!searchWin)        {            const searchPath = `file://${__dirname}/public_html/search.html`;            searchWin = new BrowserWindow({width: 400, height: 275});            searchWin.loadURL(searchPath);            searchWin.on('close', ()=>{              searchWin = null;            })        }      });    }代码未测试, 大概就是这个思路, 有问题再交流...
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答