Go-Webview 弃坑Sciter

写在前面的话

之前想要学习Sciter 做桌面软件,但是支持的css等级太低了,button的背景颜色都改不了,难过,后来翻遍网络发现两个比较有意思的东西Lorcawebview。相比Sciter 来说对于html和css的支持更好。

环境搭建

go get github.com/zserge/webview

出现需要C99 编译的错误打开GOPATH路径GOPATH\src\github.com\zserge\webview\webview.h 修改1150-1159行代码如下所示,或者重新安装c99 编译器。

 char *url = (char *)calloc(1, strlen(webview_url) + 1);
    char *q = url;
	char *p;
    for (*p = webview_url + strlen(WEBVIEW_DATA_URL_PREFIX); *q = *p;
         p++, q++) {
      if (*q == '%' && *(p + 1) && *(p + 2)) {
        sscanf(p + 1, "%02x", q);
        p = p + 2;
      }
    }

修改完成会提示两个警告,忽略即可。

样例代码

go 代码如下

package main

import "github.com/zserge/webview"

func main() {
	// Open wikipedia in a 800x600 resizable window
	webview.Open("Minimal webview example",
		"D:/GoCode/demo2/index.html", 800, 600, true)
		
}

HTML 代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单</title>
    <style>
        table {
            width: 100%;
            border-collapse: collapse;
        }
 
        table td {
            padding: 10px;
            border: 1px solid #ccc;
        }
 
        table td:first-child {
            white-space:nowrap;
        }
    </style>
</head>
<body>
<input type="button" style="background-color: blue">
</body>
</html>

建议使用go build代替 go run,如下所示

# Linux
$ go build -o webview-example && ./webview-example

# MacOS uses app bundles for GUI apps
$ mkdir -p example.app/Contents/MacOS
$ go build -o example.app/Contents/MacOS/example
$ open example.app # Or click on the app in Finder

# Windows requires special linker flags for GUI apps.
# It's also recommended to use TDM-GCC-64 compiler for CGo.
# http://tdm-gcc.tdragon.net/download
$ go build -ldflags="-H windowsgui" -o webview-example.exe
如果这篇文章对您很有帮助,不妨
----- 本文结束 ❤ 感谢您的阅读 ----