话不多说,直接开干。
起因:一个用electron框架开发的windows版浏览器需要我负责了。。。。。
撸代码。。。。。将不知道的点记录下来,仅供后续查看。
"start": "chcp 65001 && electron ."
chcp 65001解释:设置cmd显示为utf-8编码,windows cmd窗口执行此命令后cmd显示不在乱码
electron .:启动命令,执行main.js入口文件
我本机的系统环境:
OS Name: Microsoft Windows 10企业版
OSVersion: 10.0.14393 N/A Build 14393
有时在cmd中输出的中文乱码
解决办法如下:
在cmd中输入CHCP 65001
按Enter键
然后查看不再乱码
注:CHCP是一个计算机指令,能够显示或设置活动代码页编号。
代码页 描述
65001 UTF-8代码页
950繁体中文
936简体中文默认的GBK
437 MS-DOS美国英语
但是通过CHCP设置编码是治标不治本的
想永久的更改cmd编码值需要修改注册表
main.js文件从上到下顺序执行,先对关于electron自有的东西进行梳理=,对main.js从上至下进行梳理
const { app, BrowserWindow, Menu, BrowserView, remote, screen } = require('electron');
app:相当于整个应用,对事件负责。对windows浏览器来讲,app就是指整个应用,app可以监听应用的一切事件,并且控制app执行的事件
app对象,作用:产生事件、监听事件、执行事件,控制整个应用事件的生命周期,具体事件有很多,用到再说
BrowserWindow:BrowserWindow对象用于创建和控制浏览器窗口。
Menu:创建原生应用菜单和上下文菜单。仅在主进程( main process)中可用, 但您也可以在渲染进程(render process)中通过 remote 模块使用它
BrowserView:创建和控制视图. 被用来让 BrowserWindow 嵌入更多的 web 内容。 它就像一个子窗口,除了它的位置是相对于父窗口。 这意味着可以替代webview标签.
remote:在渲染进程中使用主进程模块..模块为渲染进程(web页面)和主进程通信(IPC)提供了一种简单方法
screen:检索有关屏幕大小、显示器、光标位置等的信息。
const path = require('path');
process:进程,也是nodejs提供的,process.execPath 属性返回启动 Node.js 进程的可执行文件的绝对路径名。
服务端通信封装成类:作为客户端,需要和服务端通信,请求服务端提供的接口,可以专门封装一个类,里面封装各种调用服务器接口的方法
应用菜单展示封装成类:应用菜单的展示与隐藏