Contact me: hankecnc@gmail.com

如果(由电子提供){catch f5 和 f12} #169

推推 grbl 3年前 (2023-02-03) 311次浏览
关闭
 打开了这个问题 2017 年 2 月 23 日 · 34条评论
关闭

如果(由电子提供){catch f5 和 f12}#169

 打开了这个问题 2017 年 2 月 23 日 · 34条评论

评论

如果(由电子提供){catch f5 和 f12} #169

抱歉,但我需要在 lw4 中使用它来使打包器以最佳方式工作(:

可能需要将以下所有内容包装在一个函数中,以检查我们是从电子运行还是从其他地方运行。
在 LW3-Electron 中,我们使用了“if (require) { do electron stuff here}”——不确定这是否是完全正确的方法

将 F5 绑定为刷新并将 F12 绑定为打开的 devtools 的功能:制作 EXE 标准键盘快捷键后不能像 electron 一样工作!= chrome

document.addEventListener('keydown', function(evt) {
        if (evt.which === 123) {
            try {
                var focusedWindow = require('electron').remote.getCurrentWindow();
                if (focusedWindow.isDevToolsOpened()) {
                    focusedWindow.closeDevTools();
                } else {
                    focusedWindow.openDevTools();
                }
            } catch (error) {
                console.warn(error);
            }
        } else if (evt.which === 116) {
            location.reload();
        }
   });

最初是从@copet80的作品LaserWeb/deprecated-LaserWeb3@ 2e65313

如果(由电子提供){catch f5 和 f12} #169
合作者

(F12) 应该为最终用户电子工作吗?还是仅供开发人员使用?

如果(由电子提供){catch f5 和 f12} #169
作者
 评论了 2017 年 2 月 27 日 通过电子邮件
如果(由电子提供){catch f5 和 f12} #169
合作者

@openhardwarecoza,我已经集成了代码。请构建并检查。

如果(由电子提供){catch f5 和 f12} #169
作者

它捕捉 F5(刷新)就好了(也捕捉 F11=fullscreen 这很酷)
但是在 F12 上没有任何
反应我还检查了启用的 devTools 并且没有记录(没有错误)

如果(由电子提供){catch f5 和 f12} #169
作者

有趣的是,在 webpack-dev-server 中(即在使用电子构建之前)它似乎启动并关闭了 devtools ……很奇怪

如果(由电子提供){catch f5 和 f12} #169
合作者

我认为集成应该在构建电子的代码中完成,重载 window.isElectron 左右。在浏览器上运行时,我们收到了一些编译警告。
顺便提一句。F12 映射在 OSX 的仪表板上,所以对我来说永远不会工作:(

如果(由电子提供){catch f5 和 f12} #169
作者
 评论了 2017 年 2 月 28 日 通过电子邮件
如果(由电子提供){catch f5 和 f12} #169
合作者
jorgerobles 评论了 2017 年 2 月 28 日 通过电子邮件
如果(由电子提供){catch f5 和 f12} #169
作者
 评论了 2017 年 2 月 28 日 通过电子邮件
如果(由电子提供){catch f5 和 f12} #169
合作者

我会做!
一些警告:我将使用这种条件(下面)
getFocusedWindow应该在 Electron 构建上实现,因此它抽象了 require electron 并获得 Focused 窗口调用。
这样,将为浏览器编译正常。

if (window.getFocusedWindow){
                var focusedWindow = window.getFocusedWindow();
               ...
            }
如果(由电子提供){catch f5 和 f12} #169
作者

同意,只有当我们实际运行在 electron 中时才应该激活。

如果(由电子提供){catch f5 和 f12} #169
合作者
jorgerobles 评论了 2017 年 2 月 28 日  

如果(由电子提供){catch f5 和 f12} #169

..完毕

如果(由电子提供){catch f5 和 f12} #169
作者
 评论了 2017 年 2 月 28 日 通过电子邮件
如果(由电子提供){catch f5 和 f12} #169
作者

重新加载作品

但是,唉,Open DevTools 说这是我的朋友,但仍然拒绝帮我任何忙 :P

如果(由电子提供){catch f5 和 f12} #169
合作者

哈哈是的。但那是因为没有 window.getFocusedWindow。没有窗户,没有人情。

如果(由电子提供){catch f5 和 f12} #169
作者

窗口:
全局{speechSynthesis:SpeechSynthesis,缓存:CacheStorage,localStorage:存储,sessionStorage:存储,webkitStorageInfo:DeprecatedStorageInfo …}

window.getFocusedWindow:
未定义

好吧,那是在 Electron 中,它有窗口….但它没有 window.getFocusedWindow

如果(由电子提供){catch f5 和 f12} #169
作者

(github 无法为我上传任何屏幕截图)

如果(由电子提供){catch f5 和 f12} #169
作者
 评论了 2017 年 3 月 1 日  

从控制台手动测试:这有效(:

    const remote = require('electron').remote;
    const app = remote.require('electron');
    var focusedWindow = app.BrowserWindow.getFocusedWindow()
    focusedWindow.openDevTools();  or focusedWindow.closeDevTools(); 

(必须从 remote.electron 导入 BrowserWindow 类。并且 BrowserWindow != window )

如果(由电子提供){catch f5 和 f12} #169
合作者

嗯可以在顶层定义 getFocusedWindow() 吗?

function getFocusedWindow(){
   const remote = require('electron').remote;
   const app = remote.require('electron');
   return  app.BrowserWindow.getFocusedWindow()
}
如果(由电子提供){catch f5 和 f12} #169
合作者

甚至窗户。getFocusedWindow = () => {…}

如果(由电子提供){catch f5 和 f12} #169
作者

抱歉在您发表评论后进行了编辑

这就是我在反应世界中仍然不确定的地方

如果(由电子提供){catch f5 和 f12} #169
合作者

你试一试

window.getFocusedWindow = function(){
   const remote = require('electron').remote;
   const app = remote.require('electron');
   return  app.BrowserWindow.getFocusedWindow()
}
如果(由电子提供){catch f5 和 f12} #169
作者
 评论了 2017 年 3 月 1 日  

定义功能(在控制台上)后,按钮效果很好

如果(由电子提供){catch f5 和 f12} #169
合作者

@openhardwarecoza您能否将按钮合并到 dev_comms 中以获得调试器构建?

轻微抱怨我在通信集成后有一堆令人困惑的提交

如果(由电子提供){catch f5 和 f12} #169
作者
 评论了 2017 年 3 月 1 日 通过电子邮件
如果(由电子提供){catch f5 和 f12} #169
成员

@openhardwarecoza这没有错。我只在中间更改破坏构建时更喜欢分支。