miniblink+golang 开发 Windows gui 应用

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=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)
   }
}

最终效果图:

文章来源:www.cnblogs.com/wish123/p/10597970...