Electron中的一些API

来源:互联网 发布:流动人口大数据 编辑:程序博客网 时间:2024/05/21 12:44

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() {});
0 0
原创粉丝点击