为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

忽然笑 2018-12-14 15:19:39
在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 会生成很多这个页面, 是否有方法可以确保这个页面未关闭的情况下,呼出这个页面,否则就创建这个页面。
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

...你把 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;

            })

        }

      });

    }

代码未测试, 大概就是这个思路, 有问题再交流...


查看完整回答
反对 回复 2019-01-10
  • 1 回答
  • 0 关注
  • 359 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信