非常教程

Electron参考手册

指南 | Guides

应用分发 | Application Distribution

要使用Electron发布您的应用程序,您需要下载Electron的预构建二进制文件。接下来,包含您的应用程序的文件夹应该命名app并放置在Electron的资源目录中,如以下示例所示。请注意,Electron的预构建二进制文件的位置electron/在下面的示例中显示。

在MacOS上:

electron/Electron.app/Contents/Resources/app/
├── package.json
├── main.js
└── index.html

在Windows和Linux上:

electron/resources/app
├── package.json
├── main.js
└── index.html

然后执行Electron.app(或electron在Linux上,electron.exe在Windows上),Electron将作为您的应用程序启动。该electron目录将成为您的发行版,以便交付给最终用户。

将您的应用程序打包到文件中

除了通过复制所有源文件来传送应用程序之外,您还可以将应用程序打包到asar存档中,以避免将应用程序的源代码暴露给用户。

要使用asar档案来替换app文件夹,您需要将档案重新命名为app.asar,并将其放在Electron的资源目录下,然后Electron将尝试读取档案并从档案开始。

在MacOS上:

electron/Electron.app/Contents/Resources/
└── app.asar

在Windows和Linux上:

electron/resources/
└── app.asar

更多细节可以在应用程序包装中找到。

使用下载的二进制文件进行品牌重塑

在将您的应用程序捆绑到Electron之后,在将其分发给用户之前,您需要重新命名Electron。

Windows

您可以重命名electron.exe为任何您喜欢的名称,并使用rcedit等工具编辑其图标和其他信息。

MacOS

您可以重命名Electron.app,以任何你想要的名字,你也可以重命名CFBundleDisplayNameCFBundleIdentifier并且CFBundleName领域在以下文件:

  • Electron.app/Contents/Info.plist
  • Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist

您还可以重命名助手应用程序以避免Electron Helper在活动监视器中显示,但请确保您已重命名助手应用程序的可执行文件的名称。

重命名应用的结构如下所示:

MyApp.app/Contents
├── Info.plist
├── MacOS/
│   └── MyApp
└── Frameworks/
    ├── MyApp Helper EH.app
    |   ├── Info.plist
    |   └── MacOS/
    |       └── MyApp Helper EH
    ├── MyApp Helper NP.app
    |   ├── Info.plist
    |   └── MacOS/
    |       └── MyApp Helper NP
    └── MyApp Helper.app
        ├── Info.plist
        └── MacOS/
            └── MyApp Helper

Linux

您可以将electron可执行文件重命名为您喜欢的任何名称。

包装工具

除了手动打包应用程序外,您还可以选择使用第三方打包工具为您完成这项工作:

  • electron-forge

  • electron-builder

  • electron-packager

从源头重建Electron的品牌重塑

也可以通过更改产品名称并从源代码构建来更名Electron。要做到这一点,你需要修改atom.gyp文件并进行干净的重建。

创建自定义Electron分支

创建Electron的自定义分支几乎不是您需要为构建应用程序而做的事情,即使是“Production Level”应用程序也是如此。使用诸如electron-packagerelectron-forge可以让您“重新品牌”电子工具,而无需执行这些步骤。

如果您已将自定义的C ++代码直接修补到Electron中,那么您需要将Electron分叉,即无法将其升级为Electron,或者已经被正式版本拒绝。作为Electron的维护者,我们非常希望能够使您的方案发挥作用,所以请尽可能努力地将您的更改纳入Electron的正式版本中,这对您来说会容易得多,我们感谢您的帮助。

使用surf-build创建自定义发布

  1. 通过npm 安装Surf:npm install -g surf-build@latest
  1. 创建一个新的S3存储桶并创建以下空目录结构:
  1. atom-shell/ - symbols/ - dist/

  1. 设置以下环境变量:
  1. ELECTRON_GITHUB_TOKEN - 一个可以在GitHub上创建发布的令牌
  1. ELECTRON_S3_ACCESS_KEYELECTRON_S3_BUCKETELECTRON_S3_SECRET_KEY-在这里您可以上传的node.js头以及符号的地方
  1. ELECTRON_RELEASE- 设置为true并且上传部分将运行,保留未设置状态并surf-build仅执行CI类型的检查,适合每个请求的运行。
  1. CI- 设置为true或否则会失败
  1. GITHUB_TOKEN - 将它设置为与 ELECTRON_GITHUB_TOKEN
  1. SURF_TEMP- C:\Temp在Windows上设置,以防止路径太长的问题
  1. TARGET_ARCH- 设置为ia32x64
  1. script/upload.py,你必须设置ELECTRON_REPO你的fork(MYORG/electron),特别是如果你是Electron的贡献者。
  1. surf-build -r https://github.com/MYORG/electron -s YOUR_COMMIT -n 'surf-PLATFORM-ARCH'
  1. 等待很长时间才能完成构建。
Electron

Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。

主页 https://electron.atom.io/
源码 https://github.com/electron/electron
发布版本 1.7.9

Electron目录

1.指南 | Guides
2.指南·开发 | Guides: Development
3.Webview 组件 |
4.加速器 | Accelerator
5.API
6.API·对象 | API·Objects
7.app
8.autoUpdater
9.浏览器总览 | BrowserView
10.浏览器窗口 | BrowserWindow
11.浏览器窗口代理 | BrowserWindowProxy)
12.ClientRequest
13.剪贴板 | clipboard
14.内容追踪 | contentTracing
15.小型文字档案 | Cookies
16.crashReporter
17.调试器 | Debugger
18.desktopCapturer
19.dialog
20.电子下载 | DownloadItem
21.环境变量 | Environment Variables
22.无框窗口 | Frameless Window
23.globalShortcut
24.IncomingMessage
25.ipcMain
26.IPC渲染器 | ipcRenderer
27.语言环境 | Locales
28.画面 | Menu
29.MenuItem
30.本地图像 | nativeImage
31.net
32.通知 | Notification
33.权限监控 | powerMonitor
34.权限存储拦截器 | powerSaveBlocker
35.处理 | process
36.协议 | protocol
37.远程 | remote
38.sandbox
39.屏幕 | screen
40.会话 | session
41.shell
42.系统表现 | systemPreferences
43.触摸板 | TouchBar
44.触摸板按钮 | TouchBarButton
45.触摸板颜色选择器 | TouchBarColorPicker
46.触摸板组 | TouchBarGroup
47.触摸板标签 | TouchBarLabel
48.触摸板弹出框 | TouchBarPopover
49.触摸板清理 | TouchBarScrubber
50.触摸板分段控制 | TouchBarSegmentedControl
51.触摸板滑块 | TouchBarSlider
52.触摸板间隔 | TouchBarSpacer
53.Tray
54.网页内容 | webContents
55.网页框架 | webFrame
56.网页要求 | WebRequest
57.窗口开启 | window.open