Documentation ¶
Overview ¶
Example ¶
w := New(480, 320, "Test", true) defer w.Destroy() w.Navigate("https://google.com/") w.Bind("noop", func() string { log.Println("hello") return "hello" }) w.Bind("add", func(a, b int) int { return a + b }) w.Bind("quit", func() { w.Terminate() }) w.Navigate(`data:text/html, <!doctype html> <html> <body>hello</body> <script> window.onload = function() { document.body.innerText = ` + "`hello, ${navigator.userAgent}`" + `; noop().then(function(res) { console.log('noop res', res); add(1, 2).then(function(res) { console.log('add res', res); quit(); }); }); }; </script> </html> )`) w.Run()
Output:
Index ¶
Examples ¶
Constants ¶
View Source
const ( // Width and height are default size HintNone = C.WEBVIEW_HINT_NONE // Window size can not be changed by a user HintFixed = C.WEBVIEW_HINT_FIXED // Width and height are minimum bounds HintMin = C.WEBVIEW_HINT_MIN // Width and height are maximum bounds HintMax = C.WEBVIEW_HINT_MAX )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type WebView ¶
type WebView interface { // Run runs the main loop until it's terminated. After this function exits - // you must destroy the webview. Run() // Terminate stops the main loop. It is safe to call this function from // a background thread. Terminate() // Dispatch posts a function to be executed on the main thread. You normally // do not need to call this function, unless you want to tweak the native // window. Dispatch(f func()) // Destroy destroys a webview and closes the native window. Destroy() // Window returns a native window handle pointer. When using GTK backend the // pointer is GtkWindow pointer, when using Cocoa backend the pointer is // NSWindow pointer, when using Win32 backend the pointer is HWND pointer. Window() unsafe.Pointer // Show shows the window when it's hidden Show() // Hide hides the webview window Hide() // Minimize the window Minimize() // Maximize the window Maximize() // HideToSystemTray hides the window to the system tray. The window will be shown // again when the icon in the system tray is clicked. You must call SetIcon or // SetIconFromFile before using this as it won't work without an icon. // This only works on Windows. HideToSystemTray() // SetTitle updates the title of the native window. Must be called from the UI // thread. SetTitle(title string) // SetSize updates native window size. See Hint constants. SetSize(w int, h int, hint Hint) // SetIcon sets the window icon SetIcon(iconBytes []byte) // SetIcon sets the window icon SetIconFromFile(iconFile string) // "data:text/text,<html>...</html>". It is often ok not to url-encode it // properly, webview will re-encode it for you. Navigate(url string) // Init injects JavaScript code at the initialization of the new page. Every // time the webview will open a the new page - this initialization code will // be executed. It is guaranteed that code is executed before window.onload. Init(js string) // Eval evaluates arbitrary JavaScript code. Evaluation happens asynchronously, // also the result of the expression is ignored. Use RPC bindings if you want // to receive notifications about the results of the evaluation. Eval(js string) // Bind binds a callback function so that it will appear under the given name // as a global JavaScript function. Internally it uses webview_init(). // Callback receives a request string and a user-provided argument pointer. // Request string is a JSON array of all the arguments passed to the // JavaScript function. // // f must be a function // f must return either value and error or just error Bind(name string, f interface{}) error // Create the JS SendEvent function that will callback to Go with eventName and eventData (JSON) so // we can use non-web stuff like creating or reading files. A FILE_READ example event is supplied, // you can add events like how it's shown there. // Usage in JavaScript: // window.SendEvent("FILE_READ", JSON.stringify({ // file: "some_file.txt", // base64: false // })).then(data => { // const JsonData = JSON.parse(data); // if (JsonData.error) { // return console.error("An error has occurred: " + JsonData.message); // } // console.log("File Contents: " + JsonData["fileContents"]); // }); InitMessageHandler() // Add a message handler. Must first call InitMessageHandler(). AddMessageHandler(eventName string, f func(message string, messageData string) string) // Send a message event to javascript. You can use it with this code in JS: // window.addEventListener("webview_message", (eventName, eventData) => { // console.log(eventName); // console.log(eventData); // }); SendMessage(eventName string, eventData string) }
func New ¶
New calls NewWindow to create a new window and a new webview instance. If debug is non-zero - developer tools will be enabled (if the platform supports them).
func NewWindow ¶
NewWindow creates a new webview instance. If debug is non-zero - developer tools will be enabled (if the platform supports them). Window parameter can be a pointer to the native window handle. If it's non-null - then child WebView is embedded into the given parent window. Otherwise a new window is created. Depending on the platform, a GtkWindow, NSWindow or HWND pointer can be passed here.
Click to show internal directories.
Click to hide internal directories.