Add Browser examples

This commit is contained in:
Lea Anthony
2020-10-21 06:40:17 +11:00
parent dc2ad3cd3e
commit 912c0125e5
12 changed files with 127 additions and 11 deletions

View 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)
}

View File

@@ -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",

View File

@@ -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",

View File

@@ -21,7 +21,6 @@
let runtimePages = [
'Logging',
'Events',
'Calls',
'Dialog',
'Browser',
'File System',

View File

@@ -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>

View File

@@ -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;

View File

@@ -7,7 +7,7 @@
$: linkclass = darkMode ? 'dark' : 'light';
function openLink() {
runtime.Browser.OpenURL(href);
runtime.Browser.Open(href);
}
</script>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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")
}

View File

@@ -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!");
}

View File

@@ -26,6 +26,7 @@ func main() {
app.Bind(&Events{})
app.Bind(&Logger{})
app.Bind(&Browser{})
app.Run()
}