/electron-demos

Primary LanguageTypeScriptDo What The F*ck You Want To Public LicenseWTFPL

Electron DEMOs

实践实践验真理的唯一标准。

运行

先分别在././view下运行$ yarn安装依赖

然后

$ cd ./view
$ npm run build
$ cd ..
$ npm run build
$ npm start

说明

窗口加载

先使用一个临时窗口加载一个本地HTML作为启动页,然后启动加载远程服务的窗口, 等待远程窗口加载好之后,再隐藏启动页,显示应用主页。

参考代码

IPC

封装了几个IPC相关的函数,主进程中使用on进行监听并给对应的请求做响应、 使用connection建立持续事件服务; 在渲染进程中使用send发送单次事件,只响应一次结果; 使用connect建立持续事件的客户端,通过connectstart以及stop进行控制。

主进程参考代码

主进程使用参考

渲染进程参考代码

渲染进程使用参考

窗口间通信

在渲染进程中封装好一个统一的创建窗口函数, 之后都使用这个函数进行窗口的创建。

使用案例:创建窗口被创建的窗口

就是这样有个问题,就是窗口都是在各个渲染进程中管理的,没能统一, 可以改成通过IPC让主进程调用,再返回pid,最后通过remote.webContents.fromId获取实例

但是想想没啥必要,毕竟有BrowserWindow.getAllWindows()了, 倒是可以把ipcRenderer.on封装成一些注册函数,返回一个remove函数在组件销毁的时候调一下

打包

推荐使用electron-builder

需要在package.json中添加build配置, 建议使用file字段指定需要打包的文件夹,否则默认为**/*,其他配置看文档。 另外,electron必须放在devDependencies里。

打包完成后会在dist目录下生成安装包。