Go GUI golang打包Win,MacOs,Linux 可执行程序 依赖本地google浏览器

Go GUI golang打包Win,MacOs,Linux 可执行程序 依赖本地google浏览器

远航
2022-08-20 / 0 评论 / 288 阅读 / 正在检测是否收录...

目录结构
go-gui-mini              项目根目录
├─app                    你写代码的目录
│  ├─bindHandle          go方法声明javaScript方法名目录
│  │  ├─func.go          go方法声明javaScript方法名文件
│
├─boot                   这.....
│  ├─boot.go             额.....
│
├─frame                  做了简单的封装,符合自己的使用习惯
│
├─resources              静态文件目录
│  ├─view                模板文件目录,界面文件
│  │   ├─js
│  │   │  ├─function.js  提供给go的方法 屏蔽右键等普通js文件
│  │   │
│  │   ├─index.html      界面文件
│  │   │
│  │   ├─favicon.png     这东西,就是哪个东西
│  │
│  ├─iconns              win,mac,linux端的图标
│
├─route                  暴露方法名到JS
│
├─main.go                南天门
│
├─build-linux.sh         打包linux程序脚本,感兴趣自己看
│
├─build-macos.sh         打包macos程序脚本,感兴趣自己看
│
├─build-windows.bat      打包windows程序脚本,感兴趣自己看
│
├─main.manifest          自己百度
│
├─main.syso              自己百度
│
创建主页面:./resources/view/index.html
<!doctype html>
<html lang="en">
<head>
    <title>你没有看错</title>
    <link rel="shortcut icon" href="favicon.png">
</head>
<body>
    <p>爱咋写就咋写</p>
</body>
</html>
绑定主页
// main.go 文件
// 里面的注释也是有用的别乱改
// 改宽度就行了,主页默认就是index.html
// 窗口宽度
var width int = 480
// 窗口高度
var height int = 320
// 你问我怎么新建窗口?
// <a target="_blank" href="http://www.baidu.com">百度</a>
js调用go方法
// 先创建方法 ./app/bindHandle/func.go
// 不带返回值 参数自己定义
func (c *BindJs) JsToGo(n, b, d int) {
    c.Lock()
    defer c.Unlock()
    fmt.Println("JS调用go:", n, b, d)
}
// 带返回值 参数自己定义
func (c *BindJs) JsToGoGetRet() string {
    c.Lock()
    defer c.Unlock()
    return "golang的返回"
}
// 暴露方法名到javascript ./route/route.go
// Init 暴露方法名到JS
func Init() {
    route.Bind("JsToGo", bindHandle.BindObj.JsToGo)
    route.Bind("JsToGoGetRet", bindHandle.BindObj.JsToGoGetRet)
}
<script>
    // javascript 异步调用 golang 方法
    JsToGo(1, 2, 3);
    // javascript 调用 golang 方法并获取返回值
    const syncRun = async () => {
        var res = await JsToGoGetRet()
        alert(res)
    };
    syncRun()
    // 贼简单,和使用js自带函数那样
</script>
go调用js方法
// javascript 先声明方法
function GoToJs(aa, bb, cc, dd) {
    alert("go调用js:" + aa + ' ' + bb + ' ' + cc + ' ' + dd)
}
// 然后go调用
// go 调用 js 方法
// js.Fun("方法名", 参数1, 参数2, ...)
js.Fun("GoToJs", "111", "2222", "333", "444")
基础用法:日志输出 - go端
// 输出日志到浏览器控制台
log.Log("调用go方法成功")
log.Error()
启动预览
go run main.go
制作Windows图标
// 1.下载工具包
go get github.com/akavel/rsrc
// 2.生成带图标 syso 文件
rsrc -manifest main.manifest -ico resources/icons/icon.ico -o main.syso
// 3.打包
go build -ldflags '-w -s -H=windowsgui' -o main.exe
0

评论 (0)

取消