# 放弃 Electron,拥抱 WebView2
Electron
- Electron 不错,但也不是完美的。
- Electron 带来了很多优秀的桌面软件,但并不一定总是适合我们的需求。
WebView2
- 1、WebView2 基于性能强悍的 Edge(Chromium) 内核。
- 2、调用 WebView2 生成的软件体积很小。所有基于 WebView2 的软件可以共享同一个 WebView2 组件。Win11 已经内置 WebView2 组件,其他操作系统也可以快速地自动安装 WebView2 。
- 3、WebView2 接口非常简洁,嵌入其他窗口界面也非常方便。
WebView2 简单、好用、生成软件体积小。
# 一个最简单的程序演示
import win.ui;
/*DSG{{*/
mainForm = win.form(text="WebView2")
mainForm.add(
btnCallJs={cls="button";text="调用 JS 函数";left=461;top=395;right=726;bottom=449;note="点这里调用 JavaScript 函数";z=1};
custom={cls="custom";left=17;top=21;right=730;bottom=356;z=2}
)
/*}}*/
//创建浏览器组件
import web.view;
var wb = web.view(mainForm.custom);
//导出本地函数给网页 JavaScript
wb.external = {
getComputerName = function(){
return sys.getComputerName();
}
}
import sys;
//写入网页 HTML
wb.html = /**
<html>
<head>
<script>
(async ()=>{
var n = await aardio.getComputerName();
alert(n);
})()
</script>
</head>
<body>
**/
//响应按钮事件
mainForm.btnCallJs.oncommand = function(id,event){
//调用 JS 函数
wb.xcall("document.write","测试")
}
mainForm.show();
win.loopMessage();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43