# 放弃 Electron,拥抱 WebView2

back

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