Electron app 模块详细解读

2021-11-24  本文已影响0人  you的日常

app 模块是为了控制整个应用的生命周期设计的。

下面的这个例子将会展示如何在最后一个窗口被关闭时退出应用:

var app = require('app');
app.on('window-all-closed', function() {
  app.quit();
});

事件列表

app 对象会触发以下的事件:

事件:will-finish-launching

当应用程序完成基础的启动的时候被触发。在 Windows 和 Linux 中, will-finish-launching 事件与ready 事件是相同的; 在 OS X 中, 这个时间相当于 NSApplication 中的 applicationWillFinishLaunching 提示。 你应该经常在这里为 open-fileopen-url 设置监听器,并启动崩溃报告和自动更新。

在大多数的情况下,你应该只在 ready 事件处理器中完成所有的业务。

事件:ready

当 Electron 完成初始化时被触发。

事件:window-all-closed

当所有的窗口都被关闭时触发。

这个时间仅在应用还没有退出时才能触发。 如果用户按下了 Cmd + Q, 或者开发者调用了 app.quit() ,Electron 将会先尝试关闭所有的窗口再触发 will-quit 事件, 在这种情况下 window-all-closed不会被触发。

事件:before-quit

返回:

在应用程序开始关闭它的窗口的时候被触发。 调用 event.preventDefault() 将会阻止终止应用程序的默认行为。

事件:will-quit

返回:

当所有的窗口已经被关闭,应用即将退出时被触发。 调用 event.preventDefault() 将会阻止终止应用程序的默认行为。

你可以在 window-all-closed 事件的描述中看到 will-quit 事件 和 window-all-closed 事件的区别。

事件:quit

返回:

当应用程序正在退出时触发。

事件:open-file' OS X

返回:

当用户想要在应用中打开一个文件时触发。open-file 事件常常在应用已经打开并且系统想要再次使用应用打开文件时被触发。 open-file 也会在一个文件被拖入 dock 且应用还没有运行的时候被触发。 请确认在应用启动的时候(甚至在 ready 事件被触发前)就对 open-file 事件进行监听,以处理这种情况。

如果你想处理这个事件,你应该调用 event.preventDefault() 。 在 Windows系统中,你需要通过解析 process.argv 来获取文件路径。

事件:open-url' OS X

返回:

当用户想要在应用中打开一个url的时候被触发。URL格式必须要提前标识才能被你的应用打开。

如果你想处理这个事件,你应该调用 event.preventDefault() 。

事件:activate' OS X

返回:

当应用被激活时触发,常用于点击应用的 dock 图标的时候。

事件:browser-window-blur

返回:

当一个 BrowserWindow 失去焦点的时候触发。

事件:browser-window-focus

返回:

上一篇下一篇

猜你喜欢

热点阅读