-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.go
155 lines (147 loc) · 3.31 KB
/
main.go
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package main
import (
_ "embed"
"fmt"
"runtime"
"time"
"github.com/eyasliu/desktop"
"github.com/eyasliu/desktop/tray"
)
//go:embed dog.ico
var dogIco []byte
var FallbackPage string = `<h1>出错了</h1>`
func main() {
var app desktop.WebView
var appTray *tray.Tray
checkedMenu := &tray.TrayItem{
Title: "有勾选状态菜单项",
Checkbox: true,
Checked: true,
}
checkedMenu.OnClick = func() {
checkedMenu.Checked = !checkedMenu.Checked
checkedMenu.Title = "未勾选"
if checkedMenu.Checked {
checkedMenu.Title = "已勾选"
}
checkedMenu.Update()
}
appTray = &tray.Tray{
Title: "托盘演示",
Tooltip: "提示文字,点击激活显示窗口",
OnClick: func() {
app.Show() // 显示窗口
},
Items: []*tray.TrayItem{
checkedMenu,
{
Title: "修改托盘图标和文字",
OnClick: func() {
appTray.SetIconBytes(dogIco)
appTray.SetTooltip("这是设置过后的托盘提示文字")
},
},
{
Title: "跳转到腾讯文档",
OnClick: func() { app.Navigate("https://docs.qq.com") },
},
{
Title: "触发错误页",
OnClick: func() { app.Navigate("https://abcd.efgh.ijkl") },
},
{
Title: "打开本地页面",
OnClick: func() {
app.SetHtml(`<h1>这是个本地页面</h1>
<div style="-webkit-app-region: drag">设置css: -webkit-app-region: drag 可移动窗口</div>`)
},
},
{
Title: "JS 交互",
Items: []*tray.TrayItem{
{
Title: "执行 alert('hello')",
OnClick: func() { app.Eval("alert('hello')") },
},
{
Title: "每次进入页面执行alert",
OnClick: func() {
app.Init("alert('每次进入页面都会执行一次')")
},
},
{
Title: "调用Go函数",
OnClick: func() {
app.Eval(`golangFn('tom').then(s => alert(s))`)
},
},
},
},
{
Title: "窗口操作",
Items: []*tray.TrayItem{
{
Title: "无边框打开新窗口 im.qq.com",
OnClick: func() {
go func() {
wpsai := desktop.New(&desktop.Options{
StartURL: "https://im.qq.com",
Center: true,
Frameless: true, // 去掉边框
})
wpsai.Run()
}()
},
},
{
Title: "显示窗口",
OnClick: func() {
app.Show()
},
},
{
Title: "隐藏窗口",
OnClick: func() {
app.Hide()
},
},
{
Title: "设置窗口标题",
OnClick: func() {
app.SetTitle("这是新的标题")
},
},
},
},
{
Title: "退出程序",
OnClick: func() {
app.Destroy()
},
},
},
}
app = desktop.New(&desktop.Options{
Debug: true,
AutoFocus: true,
Width: 1280,
Height: 768,
HideWindowOnClose: true,
Center: true,
Title: "basic 演示",
StartURL: "https://www.wps.cn",
Tray: appTray,
DataPath: "C:\\Users\\Kingsoft\\.envokv2\\webview2",
FallbackPage: FallbackPage,
})
app.Bind("golangFn", func(name string) string {
return fmt.Sprintf(`Hello %s, GOOS=%s`, name, runtime.GOOS)
})
// 为了验证没准备好就调用方法
go func() {
<-time.After(100 * time.Millisecond)
app.Show()
app.Navigate("https://www.wps.cn")
}()
app.Run()
}