golang的优点自不必说了,这么好的语言怎么能缺少界面库呢?所以我使用miniblink开发了一个可以用html,css,js开发界面的浏览器,通过它你能为你的golang开发简单的界面。说白了其实就是轻量级浏览器,暂且叫它browser吧,多轻呢,哈哈只有6.8M大小。点这里下载 下载有问题的请右键另存为

怎么使用呢?

1 首先建立golang服务了,可以是http rpc socket websocket等

2 用html,js,css写好界面,用browser打开它与golang通信

3 当然browser也可以自定义界面

命令行调用browser

browser.exe --url=http://127.0.0.1 --custom-ui=2 或

browser.exe --url=D:\index.html --ico=D:\favicon.ico

命令行参数:

--url 打开页面的地址(必传)
--width 窗口的宽(可选)
--height 窗口的高(可选)
--top 窗口距屏幕上边的距离(可选)
--left 窗口距屏幕下边的距离(可选)
--max 是否最大化,1是 0否(可选)
--full-screen 是否全屏,1是 0否(可选)
--custom-ui 是否用户自定义ui,1是 0否 2带阴影(可选)
--ico 指定ico路径,默认读取网页的favicon(可选)

自定义界面需要自己写代码,注意最大化,最小化和关闭按钮js调用

golang端代码,这里以httpserver为例,注意必须等待browser的执行,这样当关闭browser的时候,golang server也关闭了

func main() {
   http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
      reader, _ := os.OpenFile("\ui.html", os.O_RDONLY, 0666)
      defer reader.Close()
      contents, _ := ioutil.ReadAll(reader)
      _,_=fmt.Fprintf(writer, string(contents))
   })

   server := &http.Server{
      Addr:    ":8081",
      Handler: http.TimeoutHandler(http.DefaultServeMux, time.Second*30, "http server timeout"),
  }

   //start browser
  startSuccess := true
  time.AfterFunc(time.Millisecond * 200, func() {
      if !startSuccess {
           return
      }
      cmd := exec.Command("d:\\bin\\browser.exe", "--url=http://127.0.0.1:8081")
      _ = cmd.Start()
      _= cmd.Wait()
      _=server.Shutdown(nil)
   })

   //start server
  err := server.ListenAndServe()
   if err != nil {
      startSuccess = false
       log.Fatal("server ListenAndServe: ", err)
   }
}

最终效果图: