我正在将github.com/webview/webview
用于我的Go应用程序。
我想对HTML页面的特定部分进行快照。
问题是我无法设置WebView的窗口位置,也无法使用JavaScript window.screenX / window.screenY
获取同一窗口的位置,因为它总是返回零。
这是我的Go代码:
package main
import (
"automation/internal/box"
"github.com/webview/webview"
"html/template"
"log"
"net/http"
"time"
)
type PageVariables struct {
Date string
Time string
}
func main(){
// Define embed file (for a short)
index := string(box.Get("/homepage.html"))
tmpl := template.Must(template.New("").Parse(index))
/*
// ********* Screen Capture Example, window coordinates are required here! *********
img, err := screenshot.Capture(0, 0, 1440, 900) // *image.RGBA
if err != nil {
panic(err)
} */
go func() {
// Handle function
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
now := time.Now() // find the time right now
HomePageVars := PageVariables{ //store the date and time in a struct
Date: now.Format("02-01-2006"),
Time: now.Format("15:04:05"),
}
// Execute template with data
if err := tmpl.Execute(w, HomePageVars); err != nil {
log.Fatal(err)
}
})
// Start server
if err := http.ListenAndServe(":8080", nil); err != nil {
log.Fatal(err)
}
}()
debug := true
w := webview.New(debug)
defer w.Destroy()
w.SetTitle("Minimal webview example")
w.SetSize(800, 600, webview.HintNone). // Can only set the size, not the position
w.Navigate("http://localhost:8080/")
w.Run()
}
是否可以获取窗口位置?
除了可以获取/设置窗口位置的WebView之外,还有更好的跨平台替代方案吗?
是否可以获取特定窗口的快照,然后将其裁剪到所需的部分?