Electron app 模块详细解读
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-file
和 open-url
设置监听器,并启动崩溃报告和自动更新。
在大多数的情况下,你应该只在 ready 事件处理器中完成所有的业务。
事件:ready
当 Electron 完成初始化时被触发。
事件:window-all-closed
当所有的窗口都被关闭时触发。
这个时间仅在应用还没有退出时才能触发。 如果用户按下了 Cmd + Q, 或者开发者调用了 app.quit()
,Electron 将会先尝试关闭所有的窗口再触发 will-quit
事件, 在这种情况下 window-all-closed
不会被触发。
事件:before-quit
返回:
- event Event
在应用程序开始关闭它的窗口的时候被触发。 调用 event.preventDefault()
将会阻止终止应用程序的默认行为。
事件:will-quit
返回:
- event Event
当所有的窗口已经被关闭,应用即将退出时被触发。 调用 event.preventDefault()
将会阻止终止应用程序的默认行为。
你可以在 window-all-closed
事件的描述中看到 will-quit
事件 和 window-all-closed
事件的区别。
事件:quit
返回:
- event Event
- exitCode Integer
当应用程序正在退出时触发。
事件:open-file' OS X
返回:
- event Event
- path String
当用户想要在应用中打开一个文件时触发。open-file 事件常常在应用已经打开并且系统想要再次使用应用打开文件时被触发。 open-file 也会在一个文件被拖入 dock 且应用还没有运行的时候被触发。 请确认在应用启动的时候(甚至在 ready 事件被触发前)就对 open-file 事件进行监听,以处理这种情况。
如果你想处理这个事件,你应该调用 event.preventDefault()
。 在 Windows系统中,你需要通过解析 process.argv 来获取文件路径。
事件:open-url' OS X
返回:
- event Event
- url String
当用户想要在应用中打开一个url的时候被触发。URL格式必须要提前标识才能被你的应用打开。
如果你想处理这个事件,你应该调用 event.preventDefault() 。
事件:activate' OS X
返回:
- event Event
- hasVisibleWindows Boolean
当应用被激活时触发,常用于点击应用的 dock 图标的时候。
事件:browser-window-blur
返回:
- event Event
- window BrowserWindow
当一个 BrowserWindow
失去焦点的时候触发。
事件:browser-window-focus
返回: