vscode启动时嵌入登录页面
任务
基于vscode源码实现一个登陆页面。
思路
根据启动流程,在启动之前判断是否需要登陆,若需要弹出一个登陆页面,登陆验证成功后进入应用,否则弹出错误提示,若验证超过三次退出应用。 1.找到合适的启动程序位置。在启动应用之前,判断是否需要登陆。 2.在执行启动程序位置编写登陆程序。
实现
确定登陆逻辑合适的编写位置
在确定登陆逻辑位置之前,先复习下vscode源码的启动流程:
- 入口是 src/main.js
- 主进程(Main Process) 的实际调用路径是:
main.js -> vs/code/electron-main/main.ts -> vs/code/electron-main/window.ts
在window.ts
启动了一个BrowserWindow
加载了vs/code/electron-browser/workbench/workbench.html
- 渲染进程(Renderer Process)的实际路径是:
vs/code/electron-browser/workbench/workbench.html -> vs/code/electron-browser/workbench/workbench.js
我们要做的是,在程序主进程渲染之前,判断并弹出一个登陆窗口。需要使用到electron的API,结合vscode源码的环境划分,我们需要把逻辑写在vs/code/electron-main/main.ts文件下。
登陆逻辑实现
观察ts文件代码: 发现主要代码写在CodeMain类里。 首先贴上我的源码实现:
1 | class CodeMain { |
代码解析: 1.声明一个验证变量:token 2.创建一个创建登陆窗口的方法:createWindow,内部实现使用了electron主进程api,BrowserWindow、IPC等。 3.登陆成功时需要先等待vscode主进程启动成功才能把loginWindow窗口关闭,否则会导致程序退出。 4.登陆页面的位置也是依据源码环境划分原则,放置在src/vs/code/browser/workbench目录下。
登陆优化计划
在页面运行成功后,添加login菜单选项,触发调起登陆页面。
- 本文标题:vscode启动时嵌入登录页面
- 本文作者:Joyer Lee
- 创建时间:2020-12-08 09:59:25
- 本文链接:https://lhx.blog.wj2015.com/2020/12/08/工作日志/vscode启动时嵌入登录页面/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!