需要寫一個window執行的exe檔案,使用者執行這個檔案時,程式首先會起一個http服務,然後自動開啟瀏覽器訪問這個服務預設頁面。
使用go實現的話,有三個知識點
package main
import (
_ "embed"
"log"
"net"
"net/http"
"github.com/gin-gonic/gin"
"github.com/skratchdot/open-golang/open"
)
// 這裡不能有空格
//go:embed templates/transaction.html
var content []byte
func main() {
l, err := net.Listen("tcp", "localhost:3000")
if err != nil {
log.Fatal(err)
}
r := SetRouter()
// 使用第三方的包開啟chrome
open.RunWith("http://localhost:3000/transaction", "chrome")
// Start the blocking server loop
http.Serve(l, r)
}
func SetRouter() *gin.Engine {
r := gin.Default()
// 顯示發起交易頁面
r.GET("/transaction", func(c *gin.Context) {
c.Data(http.StatusOK, "text/html", content)
})
return r
}
交叉編譯
Linux 下編譯 Mac 和 Windows 64位可執行程式
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Mac 下編譯 Linux 和 Windows 64位可執行程式
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
編譯靜態資源
embed標準包是go 1.16引入的,目的就是方便我們編譯靜態資源
本作品採用《CC 協議》,轉載必須註明作者和本文連結