主进程代码解析
- index.js是主进程的入口,下载过官方demo并且熟悉vue的童靴都知道,这里和vue的main.js是一样的,均包含了整个进程初始化操作,但是在本项目中,其代码只有21行,因为~你们也看到啦,我将窗口初始化,进程间通讯,更新,菜单都分开存放在各个文件夹中,便于后期优化和更改。
windowManager.js
- services/windowManager.js中存放的则是对于窗口的自定义操作;在该项目中采用的是一个加载窗口作为加载展示,而当真正的窗口处于的状态下关闭加载窗口站视真正的界面给用户使用。由于状态的速度是取决于用户的硬盘读取速度,所以在代码中,我做了一个固定1.5s时长加载时间,让快到加载框都出不来的用户不会只看到一个闪现窗口。这个时间可以根据自身业务条件进行调整,个人建议0.5-1.5区间就好。
提示
在文件地址中,做了开发环境判断,由于是结合了webpack,所以在开发时候监听的是本地的一个地址+端口号,这个端口号,是我从node全局变量中获取的,至于这个端口号在哪里改,在稍微后面一些的时候我会告诉大家,这里默认的是9080端口,并且会识别默认端口有没有被占用若被占用则自动向后+1,直到25565。
dowloadFile.js
- dowloadFile通讯详情
checkupdate.js
- checkupdate中参数说明 只有一个向渲染进程发送UpdateMsg,参数为object,内包含一个state和msg;其中state中的值为:-1 检查更新失败 0 正在检查更新 1 检测到新版本,准备下载 2 未检测到新版本 3 下载中 4 下载完成;当触发到4状态时,此时主进程中监听confirm-update,使用该名称即可触发重启更新功能。
server
说明
通过http模块加载express,并且支持自定义端口,启动的服务端并不会阻塞electron的主进程or渲染进程,是一个独立的node进程,只要是正常express可以处理的它均可以处理,并且当本机防火墙允许时,它还可以充当一个服务器。
- index.js
- server.js
此文件为express本体,这里存放着express接口,以及其他的逻辑代码,当然,这里我只是写了两个并不那么规范的接口例子,当然这里不推荐讲业务代码和接口代码全部塞在这一个文件里, 你可以自行分文件夹也好分文件也好,这些操作权就交给屏幕外的你了;请不要忘记它是一个拥有node功能完整的express服务端,所以请不要有所顾忌~
这里没啥好说的,这里面的话就是小封装了一个提示弹窗,一个错误弹窗,以及一些自定义头部需要调用到的窗口大小变化还有打开新窗口的一些方法;此处的ipc我是用的是方法去接收而不是方法,毕竟promise的好处多多。
- 弹窗参数说明
- StaticPath中存放的就都是一些渲染进程中的路径拉,将其从远地方剥离出来,还是为了方便维护。
使用链接唤起应用
有很多时候,我们需要的在网页中点击按钮后,若用户电脑已经安装了软件的话,就直接唤醒它,类似百度网盘那样,所以在模板中加入了的使用示例。但当前示例只会唤起新的实例,如果要完全做到百度网盘那样,需要启用单例模式,并且需要将url内数据解析出来,这部分内容会在后续完善。在本示例中,默认名称为项目名。