|
2 | 2 |
|
3 | 3 | 官网:https://electronjs.org/ |
4 | 4 |
|
| 5 | +- [electron-learn](#electron-learn) |
| 6 | + - [1. 本次项目功能点](#1-本次项目功能点) |
| 7 | + - [目前支持的功能点](#目前支持的功能点) |
| 8 | + - [使用方式](#使用方式) |
| 9 | + - [2. electron相关软件安装](#2-electron相关软件安装) |
| 10 | + - [nvm 安装](#nvm-安装) |
| 11 | + - [Node.js/NPM 安装](#nodejsnpm-安装) |
| 12 | + - [node 安装加速机器](#node-安装加速机器) |
| 13 | + - [Electron 安装](#electron-安装) |
| 14 | + - [Electron 加速技巧](#electron-加速技巧) |
| 15 | + - [常见问题](#常见问题) |
| 16 | + - [3. electron 原理](#3-electron-原理) |
| 17 | + - [2.1. 使用 Electron 的 API](#21-使用-electron-的-api) |
| 18 | + - [3.2. 使用 Node.js 的 API](#32-使用-nodejs-的-api) |
| 19 | + - [4. electron 常用 api](#4-electron-常用-api) |
| 20 | + - [4.1. app](#41-app) |
| 21 | + - [4.2. BrowserWindow](#42-browserwindow) |
| 22 | + - [4.3. ipcMain 和 ipcRenderer](#43-ipcmain-和-ipcrenderer) |
| 23 | + - [4.4. Menu/MenuItem(菜单/菜单项)](#44-menumenuitem菜单菜单项) |
| 24 | + - [4.5. Tray(托盘)](#45-tray托盘) |
| 25 | + - [4.6. clipboard](#46-clipboard) |
| 26 | + - [4.7. screen](#47-screen) |
| 27 | + - [4.8. globalShortcut](#48-globalshortcut) |
| 28 | + - [4.9. desktopCapturer](#49-desktopcapturer) |
| 29 | + - [4.10. shell](#410-shell) |
| 30 | + - [4.11. powerMonitor 电源监视器](#411-powermonitor-电源监视器) |
| 31 | + - [4.12. nativeTheme 读取并响应Chromium本地色彩主题中的变化](#412-nativetheme-读取并响应chromium本地色彩主题中的变化) |
| 32 | + - [5. 开机自启动](#5-开机自启动) |
| 33 | + - [5.1. node-auto-launch](#51-node-auto-launch) |
| 34 | + - [5.2. app.getLoginItemSettings([options])](#52-appgetloginitemsettingsoptions) |
| 35 | + - [6. 监控—crashReporter](#6-监控crashreporter) |
| 36 | + - [7. 打包](#7-打包) |
| 37 | + - [7.1. electron-builder](#71-electron-builder) |
| 38 | + - [命令行参数(CLI)](#命令行参数cli) |
| 39 | + - [8. 集成c++](#8-集成c) |
| 40 | + - [9. 测试和调试](#9-测试和调试) |
| 41 | + - [9.1. 调试debug](#91-调试debug) |
| 42 | + - [9.2. 自动化测试](#92-自动化测试) |
| 43 | + - [10. 更新](#10-更新) |
| 44 | + - [11. Electron客户端的安全:从xss到rce](#11-electron客户端的安全从xss到rce) |
| 45 | + - [12. 浏览器启动客户端](#12-浏览器启动客户端) |
| 46 | + - [12.1. windows平台](#121-windows平台) |
| 47 | + - [12.2. mac 平台](#122-mac-平台) |
| 48 | + - [12.2.1. info.plist](#1221-infoplist) |
| 49 | + - [12.3. 接收参数](#123-接收参数) |
| 50 | + - [12.3.1. Windows](#1231-windows) |
| 51 | + - [12.3.2. MacOS](#1232-macos) |
| 52 | + - [13. 性能优化](#13-性能优化) |
| 53 | + - [13.1. 减少包体积大小](#131-减少包体积大小) |
| 54 | + - [Electron 开发过程中可能会遇到的几个问题和场景。](#electron-开发过程中可能会遇到的几个问题和场景) |
| 55 | + - [NPM 下载的问题](#npm-下载的问题) |
| 56 | + - [热重载](#热重载) |
| 57 | + - [参考资料](#参考资料) |
| 58 | + |
5 | 59 | ## 1. 本次项目功能点 |
6 | 60 |
|
7 | | -模仿微信,做了一个单机版的聊天,因为只有mac,没有Windows机器,以下仅根据mac来开发。 |
| 61 | +模仿微信,做了一个单机版的聊天,因为只有mac,没有Windows机器,以下仅根据mac来开发。 |
8 | 62 |
|
9 | 63 |  |
10 | 64 |
|
@@ -46,29 +100,6 @@ cd updater-server |
46 | 100 | node index.js |
47 | 101 | ``` |
48 | 102 |
|
49 | | -### 参考资料 |
50 | | - |
51 | | -1. electron 优化 https://juejin.im/post/5e0010866fb9a015fd69c645 |
52 | | - |
53 | | -Electron的主进程阻塞导致UI卡顿的问题 https://zhuanlan.zhihu.com/p/37050595 |
54 | | - |
55 | | -2. 打包:mac 文件签名:https://www.cnblogs.com/lovesong/p/11782449.html |
56 | | -https://www.cnblogs.com/qirui/p/8327812.html |
57 | | - |
58 | | -3. 集成c++ |
59 | | - https://www.jianshu.com/p/93ffa05f028f |
60 | | - https://blog.csdn.net/wang839305939/article/details/83780789 |
61 | | - https://www.jianshu.com/p/5a4c7ce2be54 |
62 | | - https://www.dazhuanlan.com/2019/09/23/5d88a0bc8ec13/ |
63 | | - https://stackoverflow.com/questions/32986826/calling-node-native-addons-c-in-electron |
64 | | - |
65 | | -4. 奔溃报告上传 https://juejin.im/post/5c5ee47be51d457f95354c82 |
66 | | - https://www.electronjs.org/docs/api/crash-reporter |
67 | | - |
68 | | -5. debugger https://cloud.tencent.com/developer/section/1116142 |
69 | | - |
70 | | -6. 测试和调试 https://www.bookstack.cn/read/electron-v6.0-zh/dda8a7a000404b49.md |
71 | | - |
72 | 103 |
|
73 | 104 | ## 2. electron相关软件安装 |
74 | 105 |
|
@@ -117,6 +148,15 @@ npx electron -v (npm > 5.2) |
117 | 148 | ELECTRON_MIRROR=https://cdn.npm.taobao.org/dist/electron/ npm install electron --save- dev |
118 | 149 | ``` |
119 | 150 |
|
| 151 | +### 常见问题 |
| 152 | + |
| 153 | +> Electron failed to install correctly, please delete node_modules/electron and try installing again |
| 154 | +
|
| 155 | +1. 首先 npm instal或者yarn install |
| 156 | +2. 执行 npm install electron-fix -g |
| 157 | +3. 接着 electron-fix start |
| 158 | +4. 最后再 npm start |
| 159 | + |
120 | 160 | ## 3. electron 原理 |
121 | 161 |
|
122 | 162 | Node.js 和 Chromiums 整合 |
@@ -614,15 +654,13 @@ shell.openExternal('https://github.com') |
614 | 654 |
|
615 | 655 | ``` |
616 | 656 |
|
617 | | -##### 方法 |
618 | | - |
619 | 657 | shell.showItemInFolder(fullPath) |
620 | 658 | fullPath String |
621 | 659 | 在文件管理器中显示给定的文件。如果可以, 选中该文件。 |
622 | 660 |
|
623 | | -shell.openItem(fullPath) |
| 661 | +shell.openItem(fullPath) |
624 | 662 | fullPath String |
625 | | -返回 Boolean - 文件是否成功打开,以桌面的默认方式打开给定的文件。 |
| 663 | +返回 Boolean - 文件是否成功打开,以桌面的默认方式打开给定的文件。 |
626 | 664 |
|
627 | 665 | shell.beep() |
628 | 666 | 播放哔哔的声音. |
@@ -1469,5 +1507,25 @@ init() |
1469 | 1507 |
|
1470 | 1508 |
|
1471 | 1509 |
|
| 1510 | +### 参考资料 |
| 1511 | + |
| 1512 | +1. electron 优化 https://juejin.im/post/5e0010866fb9a015fd69c645 |
| 1513 | + |
| 1514 | +Electron的主进程阻塞导致UI卡顿的问题 https://zhuanlan.zhihu.com/p/37050595 |
| 1515 | + |
| 1516 | +2. 打包:mac 文件签名:https://www.cnblogs.com/lovesong/p/11782449.html |
| 1517 | +https://www.cnblogs.com/qirui/p/8327812.html |
| 1518 | + |
| 1519 | +3. 集成c++ |
| 1520 | + https://www.jianshu.com/p/93ffa05f028f |
| 1521 | + https://blog.csdn.net/wang839305939/article/details/83780789 |
| 1522 | + https://www.jianshu.com/p/5a4c7ce2be54 |
| 1523 | + https://www.dazhuanlan.com/2019/09/23/5d88a0bc8ec13/ |
| 1524 | + https://stackoverflow.com/questions/32986826/calling-node-native-addons-c-in-electron |
| 1525 | + |
| 1526 | +4. 奔溃报告上传 https://juejin.im/post/5c5ee47be51d457f95354c82 |
| 1527 | + https://www.electronjs.org/docs/api/crash-reporter |
| 1528 | + |
| 1529 | +5. debugger https://cloud.tencent.com/developer/section/1116142 |
1472 | 1530 |
|
1473 | | -### 热更新 |
| 1531 | +6. 测试和调试 https://www.bookstack.cn/read/electron-v6.0-zh/dda8a7a000404b49.md |
0 commit comments