是否可以通过 Go 和 webview 使用本地 HTML 文件?

Is it possible to use a local HTML file using Go and webview?

我想使用 Go 构建一个内置 GUI 的应用程序。一个可行的解决方案似乎是 webview。

我现在拥有的是这个(而且有效!):

package main

import (
    "github.com/webview/webview"
)

var count int = 0

func main() {
    w := webview.New(true)
    defer w.Destroy()

    w.SetSize(600, 200, webview.HintNone)

    w.Bind("btn", func() int {
        count++
        return count
    })

    //Create UI with data URI
    w.Navigate(`data:text/html,
    <!doctype html>
    <html>
    ...
    </html>`)

    w.Run()
}

我想做的是在一个单独的工作区中构建图形用户界面,这样我就可以使用语法高亮显示、智能感知等,比如:

w.Navigate("./GUI/gui.html")

但是,我无法让它工作。有可能吗?

更新:使用file:///

使用文件的完整路径。

w.Navigate("file:////Users/myuser/tempgo/hi.html")

或者将文件读入内存

使用ioutil.ReadFile 从HTML 文件中读入数据。然后可以将其转换为字符串。

file, _ := ioutil.ReadFile("hi.html")
stringFile := string(file)
w.Navigate(`data:text/html,` + stringFile)

完整的工作示例

问题的原始代码。

package main

import (
    "github.com/webview/webview"
    "io/ioutil"
)

var count int = 0

func main() {
    w := webview.New(true)
    defer w.Destroy()

    w.SetSize(600, 200, webview.HintNone)

    w.Bind("btn", func() int {
        count++
        return count
    })

    file, _ := ioutil.ReadFile("hi.html")

    stringFile := string(file)

    //Create UI with data URI
    w.Navigate(`data:text/html,` + stringFile)

    w.Run()
}

目录结构:

main.go
hi.html