• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Electron app 模块

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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'

返回:

  • event Event
  • window BrowserWindow

当一个 BrowserWindow 获得焦点的时候触发。

事件:'browser-window-created'

返回:

  • event Event
  • window BrowserWindow

当一个 BrowserWindow 被创建的时候触发。

事件:'certificate-error'

返回:

  • event Event
  • webContents WebContents
  • url String - URL 地址
  • error String - 错误码
  • certificate Object
  • data Buffer - PEM 编码数据
  • issuerName String - 发行者的公有名称
  • callback Function

当对 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);
  }
});

事件:'select-client-certificate'

返回:

  • event Event
  • webContents WebContents
  • url String - URL 地址
  • certificateList [Object]
  • data Buffer - PEM 编码数据
  • issuerName String - 发行者的公有名称
  • callback Function

当一个客户端认证被请求的时候被触发。

url 指的是请求客户端认证的网页地址,调用 callback 时需要传入一个证书列表中的证书。

需要通过调用 event.preventDefault() 来防止应用自动使用第一个证书进行验证。如下所示:

app.on('select-certificate', function(event, host, url, list, callback) {
  event.preventDefault();
  callback(list[0]);
})

事件: 'login'

返回:

  • event Event
  • webContents WebContents
  • request Object
    • method String
    • url URL
    • referrer URL
  • authInfo Object
    • isProxy Boolean
    • scheme String
    • host String
    • port Integer
    • realm String
  • callback Function

 webContents 要做进行一次 HTTP 登陆验证时被触发。

默认情况下,Electron 会取消所有的验证行为,如果需要重写这个行为,你需要用 event.preventDefault() 来阻止默认行为,并且 用 callback(username, password) 来进行验证。

app.on('login', function(event, webContents, request, authInfo, callback) {
  event.preventDefault();
  callback('username', 'secret');
})

事件:'gpu-process-crashed'

当 GPU 进程崩溃时触发。

方法列表

app 对象拥有以下的方法:

请注意 有的方法只能用于特定的操作系统。

app.quit()

试图关掉所有的窗口。before-quit 事件将会最先被触发。如果所有的窗口都被成功关闭了, will-quit事件将会被触发,默认下应用将会被关闭。

这个方法保证了所有的 beforeunload  unload 事件处理器被正确执行。假如一个窗口的 beforeunload事件处理器返回 false,那么整个应用可能会取消退出。

app.hide() OS X

隐藏所有的应用窗口,不是最小化.

app.show() OS X

隐藏后重新显示所有的窗口,不会自动选中他们。

app.exit(exitCode)

  • exitCode 整数

带着exitCode退出应用.

所有的窗口会被立刻关闭,不会询问用户。before-quit  will-quit 这2个事件不会被触发

app.getAppPath()

返回当前应用所在的文件路径。

app.getPath(name)

  • name String

返回一个与 name 参数相关的特殊文件夹或文件路径。当失败时抛出一个 Error 

你可以通过名称请求以下的路径:

  • home 用户的 home 文件夹(主目录)
  • appData 当前用户的应用数据文件夹,默认对应:
    • %APPDATA% Windows 中
    • $XDG_CONFIG_HOME or ~/.config Linux 中
    • ~/Library/Application Support OS X 中
  • userData 储存你应用程序设置文件的文件夹,默认是 

    鲜花

    握手

    雷人

    路过

    鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Electron autoUpdater 模块发布时间:2022-02-03
下一篇:
Electron window.open 函数发布时间:2022-02-03
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap