Documentation
¶
Overview ¶
Example ¶
w := New(true)
defer w.Destroy()
w.SetTitle("Hello")
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.SetHtml(`<!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()
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 URISchemeResponse ¶
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. This will be a GTK GtkWindow pointer.
Window() unsafe.Pointer
// 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)
// URI. Examples:
// w.Navigate("https://github.com/webview/webview")
// w.Navigate("data:text/html,%3Ch1%3EHello%3C%2Fh1%3E")
// w.Navigate("data:text/html;base64,PGgxPkhlbGxvPC9oMT4=")
Navigate(url string)
// SetHtml sets the webview HTML directly.
// Example: w.SetHtml(w, "<h1>Hello</h1>");
SetHtml(html 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
// Removes a callback that was previously set by Bind.
Unbind(name string) error
// RegisterURIScheme registers a custom URI scheme handler.
// When a URL with the registered scheme is accessed, the handler function
// will be called with the full URI. The handler should return a response
// and optionally an error. If an error is returned, a 500 error response
// will be automatically sent.
//
// Example:
// w.RegisterURIScheme("myapp", func(uri string) (URISchemeResponse, error) {
// return URISchemeResponse{
// Status: 200,
// ContentType: "text/html",
// Data: []byte("<h1>Hello from " + uri + "</h1>"),
// }, nil
// })
RegisterURIScheme(scheme string, handler func(uri string) (URISchemeResponse, error)) error
// UnregisterURIScheme removes a previously registered URI scheme handler.
UnregisterURIScheme(scheme string) error
// SetVirtualFileHosting sets up given uri scheme to automatically serve
// content from the given filesystem.
SetVirtualFileHosting(scheme string, contentFs fs.FS) error
}
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.
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
basic
command
|
|
|
uri-scheme
command
|
|
|
libs
|
|
|
webview
Dummy file to allow vendoring.
|
Dummy file to allow vendoring. |
|
webview/include
Dummy file to allow vendoring.
|
Dummy file to allow vendoring. |
Click to show internal directories.
Click to hide internal directories.