mirror of
https://github.com/taigrr/wails.git
synced 2026-04-02 05:08:54 -07:00
Add Browser examples
This commit is contained in:
23
v2/test/kitchensink/browser.go
Normal file
23
v2/test/kitchensink/browser.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
wails "github.com/wailsapp/wails/v2"
|
||||
)
|
||||
|
||||
// Browser struct
|
||||
type Browser struct {
|
||||
runtime *wails.Runtime
|
||||
}
|
||||
|
||||
// WailsInit is called at application startup
|
||||
func (l *Browser) WailsInit(runtime *wails.Runtime) error {
|
||||
// Perform your setup here
|
||||
l.runtime = runtime
|
||||
return nil
|
||||
}
|
||||
|
||||
// Open will open the default browser with the given target
|
||||
func (l *Browser) Open(target string) error {
|
||||
// Perform your setup here
|
||||
return l.runtime.Browser.Open(target)
|
||||
}
|
||||
12
v2/test/kitchensink/frontend/package-lock.json
generated
12
v2/test/kitchensink/frontend/package-lock.json
generated
@@ -135,9 +135,9 @@
|
||||
}
|
||||
},
|
||||
"@wails/runtime": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@wails/runtime/-/runtime-1.0.6.tgz",
|
||||
"integrity": "sha512-7K8274XRSDCRu3r0pNDDcxsC94nienlbUI5zU57781RTsYAvrf27JbrmW86ZNGezynGYdaJDI6mcvIxZ/ZAV9g==",
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@wails/runtime/-/runtime-1.0.9.tgz",
|
||||
"integrity": "sha512-BeApNQnMjwC/gi7skz1iB3wEJU8gKSontX4BujqxhYSBaGmnIFK6uHEOqjd+UHHuIGyMoIa2m4bdNdVdyjrGMQ==",
|
||||
"dev": true
|
||||
},
|
||||
"alphanum-sort": {
|
||||
@@ -1651,9 +1651,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "8.1.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.1.1.tgz",
|
||||
"integrity": "sha512-9DGLSsjooH3kSNjTZUOt2eIj2ZTW0VI2PZ/3My+8TC7KIbH2OKwUlISfDsf63EP4aiRUt3XkEWMWvyJHvJelEg==",
|
||||
"version": "8.1.2",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.1.2.tgz",
|
||||
"integrity": "sha512-mToqEVFq8jF9TFhlIK4HhE34zknFJuNTgqtsr60vUvrWn+9TIYugCwiV1JZRxCuOrej2jjstun1bn4Bc7/1HkA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"colorette": "^1.2.1",
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
"@rollup/plugin-commonjs": "^11.0.0",
|
||||
"@rollup/plugin-node-resolve": "^7.0.0",
|
||||
"@rollup/plugin-url": "^5.0.1",
|
||||
"@wails/runtime": "^1.0.6",
|
||||
"@wails/runtime": "^1.0.9",
|
||||
"focus-visible": "^5.2.0",
|
||||
"halfmoon": "^1.1.1",
|
||||
"postcss": "^8.1.1",
|
||||
"postcss": "^8.1.2",
|
||||
"postcss-import": "^12.0.1",
|
||||
"rollup": "^2.32.0",
|
||||
"rollup-plugin-livereload": "^1.0.0",
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
let runtimePages = [
|
||||
'Logging',
|
||||
'Events',
|
||||
'Calls',
|
||||
'Dialog',
|
||||
'Browser',
|
||||
'File System',
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
import TitlePage from './pages/TitlePage.svelte';
|
||||
import Logging from './pages/logging/Logging.svelte';
|
||||
import Events from './pages/events/Events.svelte';
|
||||
import Browser from './pages/browser/Browser.svelte';
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
@@ -12,6 +14,7 @@
|
||||
{#if $selectedPage == undefined} <TitlePage></TitlePage> {/if}
|
||||
{#if $selectedPage == "Logging"} <Logging></Logging> {/if}
|
||||
{#if $selectedPage == "Events"} <Events></Events> {/if}
|
||||
{#if $selectedPage == "Browser"} <Browser></Browser> {/if}
|
||||
</div>
|
||||
|
||||
<style>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
export let id = "toggle-" + Date.now().toString() + Math.random().toString();
|
||||
|
||||
// Handle hiding example
|
||||
let showRun = false;
|
||||
export let showRun = false;
|
||||
|
||||
function toggleRun() {
|
||||
showRun = !showRun;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
$: linkclass = darkMode ? 'dark' : 'light';
|
||||
|
||||
function openLink() {
|
||||
runtime.Browser.OpenURL(href);
|
||||
runtime.Browser.Open(href);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<script>
|
||||
import Link from '../../components/Link.svelte';
|
||||
import Browser from './Browser/Browser.svelte';
|
||||
|
||||
</script>
|
||||
<div>
|
||||
Sometimes it is necessary to redirect users to external websites. The Wails runtime offers this ability through the <code>runtime.Browser</code> component.
|
||||
|
||||
By using <code>runtime.Browser.Open</code>, it is possible to open the user's default browser to either navigate to a url (pass in a URL), or open a local file (provide a local filepath).
|
||||
|
||||
<Link href="https://wails.app">Here</Link> is an example.
|
||||
|
||||
<br/><br/>
|
||||
|
||||
<Browser></Browser>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
<script>
|
||||
import { Browser } from '@wails/runtime';
|
||||
import CodeBlock from '../../../components/CodeBlock.svelte';
|
||||
import CodeSnippet from '../../../components/CodeSnippet.svelte';
|
||||
import jsCode from './code.jsx';
|
||||
import goCode from './code.go';
|
||||
|
||||
var isJs = false;
|
||||
$: lang = isJs ? 'Javascript' : 'Go';
|
||||
var id = "Browser";
|
||||
|
||||
var userInput = "";
|
||||
|
||||
function processOpen() {
|
||||
if( userInput.length > 0 ) {
|
||||
if( isJs ) {
|
||||
Browser.Open(userInput)
|
||||
} else {
|
||||
backend.main.Browser.Open(userInput)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$: encodedMessage = userInput.replace(`"`, `\"`);
|
||||
$: testcodeJs = "import { runtime } from '@wails/runtime';\nruntime.Browser.Open(`" + encodedMessage + "`);";
|
||||
$: testcodeGo = '// runtime is given through WailsInit()\nruntime.Browser.Open("' + encodedMessage + '")';
|
||||
|
||||
</script>
|
||||
|
||||
<CodeBlock bind:isJs={isJs} {jsCode} {goCode} title="Browser" {id} showRun=true>
|
||||
<div class="browser-form">
|
||||
<form data-wails-no-drag class="mw-full">
|
||||
<div class="form-group">
|
||||
<label for="{id}-userInput" class="required">Enter Filename or URL</label>
|
||||
<input type="text" class="form-control" id="{id}-userInput" placeholder="https://www.duckduckgo.com" bind:value="{userInput}" required="required">
|
||||
</div>
|
||||
|
||||
<input class="btn btn-primary" type="button" on:click="{processOpen}" value="Open using {lang} runtime">
|
||||
|
||||
<CodeSnippet bind:isJs={isJs} jsCode={testcodeJs} goCode={testcodeGo}></CodeSnippet>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</CodeBlock>
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package main
|
||||
|
||||
import wails "github.com/wailsapp/wails/v2"
|
||||
|
||||
type MyStruct struct {
|
||||
runtime *wails.Runtime
|
||||
}
|
||||
|
||||
func (l *MyStruct) ShowHelp() {
|
||||
l.runtime.Browser.Open("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { Log } from '@wails/runtime';
|
||||
|
||||
function doSomeOperation() {
|
||||
// Do things
|
||||
let value = doSomething();
|
||||
Log.Print("A raw message");
|
||||
Log.Trace("I got: " + value);
|
||||
Log.Debug("A debug message");
|
||||
Log.Info("An Info message");
|
||||
Log.Warning("A Warning message");
|
||||
Log.Error("An Error message");
|
||||
}
|
||||
|
||||
function abort() {
|
||||
// Do some things
|
||||
Log.Fatal("I accidentally the whole application!");
|
||||
}
|
||||
@@ -26,6 +26,7 @@ func main() {
|
||||
|
||||
app.Bind(&Events{})
|
||||
app.Bind(&Logger{})
|
||||
app.Bind(&Browser{})
|
||||
|
||||
app.Run()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user