Electron中的一些API

app

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

事件列表

  • will-finish-launching
    当应用程序完成基础的启动的时候被触发。
    需要说明的是,在window和Linux中,will-finish-launching事件与ready事件是相同的;在macOS中,这个事件相当于NSApplication中的applicationWillFinishLaunching提示。这里可以为open-fileopen-url设置监听器,并启动崩溃报告和自动更新。
    在大多数的情况下,只在ready事件处理器中完成所有的业务。
  • ready
    当Electron完成初始化时触发
  • window-all-closed
    当所有的窗口都被关闭时触发。如果开发者调用了app.quit(),Electron将会先尝试关闭所有的窗口再触发will-quit()事件
  • will-quit
    当所有的窗口已经被关闭,应用即将推出时触发。
    这里如果调用event.preventDefault将会阻止终止应用程序的默认行为。

  • before-quit
    应用程序开始关闭它的窗口的时候被触发。这里如果调用event.preventDefault()将会阻止终止应用程序的默认行为。

  • quit
    应用程序正在推出时触发。

  • open-file(macOS)
    当用户想要在应用中打开一个文件的时候触发。open-file事件常常用在应用已经打开并且系统想要再次使用应用打开文件时被触发。open-file 也会在一个文件被拖入 dock 且应用还没有运行的时候被触发。

  • open-url(macOS)
    当用户想要在应用中打开一个url时被触发。

  • active(macOS)
    应用被激活时触发,常用于点击应用图标的时候。

  • browser-window-blur
    当一个BrowserWindow失去焦点的时候触发。

  • browser-window-focus
    当一个BrowserWindow获得焦点的时候被触发。

  • browser-window-created
    当一个BrowserWindow被创建的时候触发。

  • certificate-error
    当对url验证certificate证书失败的时候触发,如果需要信任这个证书,需组织默认行为event.preventDefault()并且调用callback(true)。

session.on('certificate-error', function(event, webContents, url, error, certificate, callback) {
  if (url == "https://github.com") {
    // 验证逻辑。
    event.preventDefault();
    callback(true);
  } else {
    callback(false);
  }
});
  • login
    当webContents要进行一次HTTP登录验证时被触发。
    默认情况下,electron会取消所有的验证行为,如果需要重写这个行为,需event.preventdefault()并且用callback(‘username’,’secret’)来验证。
app.on('login', function(event, webContents, request, authInfo, callback) {
  event.preventDefault();
  callback('username', 'secret');
})
  • gpu-process-crashed
    当GPU进程崩溃是触发。

方法列表

  • app.quit()
  • app.hide()(macOS)
    隐藏所有的应用窗口,不是最小化.
  • app.show()(macOS)
    隐藏后重新显示所有的窗口,不会自动选中他们。
  • app.exit(exitCode)
  • app.getAppPath()
  • app.makeSingleInstance(callback)
    这个方法可以让你的应用在同一时刻最多只会有一个实例。可以利用这个接口保证只有一个实例正常运行,其余的实例全部会被终止退出。
    如果多个实例同时在运行,那么第一个被运行的实例中callback会以callback(argv,workgDirectory)其余的实例会被终止。argv是一个包含了这个实例的命令行参数列表的数组,workgDirectory是这个实例目前的运行目录。
var myWindow = null;

var shouldQuit = app.makeSingleInstance(function(commandLine, workingDirectory) {
  // 当另一个实例运行的时候,这里将会被调用,我们需要激活应用的窗口
  if (myWindow) {
    if (myWindow.isMinimized()) myWindow.restore();
    myWindow.focus();
  }
  return true;
});

// 这个实例是多余的实例,需要退出
if (shouldQuit) {
  app.quit();
  return;
}

// 创建窗口、继续加载应用、应用逻辑等……
app.on('ready', function() {
});
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值