golang调用本地chrome实现轻量化UI,可做测试和小工具使用

golang目前没有官方ui框架,第三方的ui库有时又过重,如果使用go编写一些小工具或者测试程序有什么更好的选择呢,在这种需求下我编写了一个https://github.com/tenny1225/webui的库,它可以启动本地chrome浏览器实现轻量化ui。

webui的实现思路是开启http服务,然后使用go的cmd启动本地的chrome并打开指定网页,web端和go使用websocket进行通信。

一下是一个例子

package main

import (
    "github.com/tenny1225/webui"
)

type X struct {
    w webui.Window
}

func (*X) Test(a int64) int64 {
    return a * 2
}
func (x *X) Gds() {
    x.w.Eval(`document.getElementById("xz").style.color="#ff3300";`,nil)
}
func main() {
    //最后一个参数指定一个本地的文件夹
    w := webui.NewWindow("xz", 300,300,400, 300, "./html")
    w.Run(func() {
        w.Navigation("xz.html")
        w.Bind(&X{w})
    })

}

webui可以实现结构体方法到网页端window方法的主动映射,这里的方法映射和回调使用了反射的方法目前实现了基本数据类型的传递。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容