是否可以通过 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
我想使用 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