mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-05-31 13:39:36 +02:00
feat: move example
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
"@tauri-apps/api": "2.0.0-alpha.3",
|
||||
"@tauri-apps/cli": "2.0.0-alpha.8",
|
||||
"@zerodevx/svelte-json-view": "0.2.1",
|
||||
"tauri-plugin-camera-api": "0.0.0",
|
||||
"tauri-plugin-cli-api": "0.0.0",
|
||||
"tauri-plugin-clipboard-api": "0.0.0",
|
||||
"tauri-plugin-dialog-api": "0.0.0",
|
||||
|
||||
Generated
+12
@@ -149,6 +149,7 @@ dependencies = [
|
||||
"serde_json",
|
||||
"tauri",
|
||||
"tauri-build",
|
||||
"tauri-plugin-camera",
|
||||
"tauri-plugin-cli",
|
||||
"tauri-plugin-clipboard",
|
||||
"tauri-plugin-dialog",
|
||||
@@ -3574,6 +3575,17 @@ dependencies = [
|
||||
"tauri-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tauri-plugin-camera"
|
||||
version = "0.0.0"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tauri",
|
||||
"tauri-build",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tauri-plugin-cli"
|
||||
version = "0.0.0"
|
||||
|
||||
@@ -25,6 +25,9 @@ tauri-plugin-http = { path = "../../../plugins/http", features = [ "http-multipa
|
||||
tauri-plugin-notification = { path = "../../../plugins/notification", features = [ "windows7-compat" ] }
|
||||
tauri-plugin-shell = { path = "../../../plugins/shell" }
|
||||
|
||||
[target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies]
|
||||
tauri-plugin-camera = { path = "../../../plugins/camera" }
|
||||
|
||||
[patch.crates-io]
|
||||
tauri = { git = "https://github.com/tauri-apps/tauri", branch = "next" }
|
||||
tauri-build = { git = "https://github.com/tauri-apps/tauri", branch = "next" }
|
||||
|
||||
@@ -46,6 +46,11 @@ pub fn run() {
|
||||
.plugin(tauri_plugin_global_shortcut::Builder::new().build())?;
|
||||
}
|
||||
|
||||
#[cfg(mobile)]
|
||||
{
|
||||
app.handle().plugin(tauri_plugin_camera::init())?;
|
||||
}
|
||||
|
||||
let mut window_builder = WindowBuilder::new(app, "main", WindowUrl::default());
|
||||
#[cfg(desktop)]
|
||||
{
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
import Updater from './views/Updater.svelte'
|
||||
import Clipboard from './views/Clipboard.svelte'
|
||||
import WebRTC from './views/WebRTC.svelte'
|
||||
import Camera from './views/Camera.svelte'
|
||||
import App from './views/App.svelte'
|
||||
|
||||
import { onMount } from 'svelte'
|
||||
@@ -110,7 +111,12 @@
|
||||
label: 'WebRTC',
|
||||
component: WebRTC,
|
||||
icon: 'i-ph-broadcast'
|
||||
}
|
||||
},
|
||||
isMobile && {
|
||||
label: 'Camera',
|
||||
component: Camera,
|
||||
icon: 'i-codicon-clippy'
|
||||
},
|
||||
]
|
||||
|
||||
let selected = views[0]
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<script>
|
||||
import { getPhoto, ResultType, Source } from "tauri-plugin-camera-api";
|
||||
|
||||
let source = Source.Camera;
|
||||
let imageSrc = "";
|
||||
|
||||
const sources = [
|
||||
{
|
||||
value: Source.Camera,
|
||||
label: "Camera",
|
||||
},
|
||||
{
|
||||
value: Source.Photo,
|
||||
label: "Photo",
|
||||
},
|
||||
{
|
||||
value: Source.Prompt,
|
||||
label: "Prompt",
|
||||
},
|
||||
];
|
||||
|
||||
async function get() {
|
||||
try {
|
||||
const image = await getPhoto({
|
||||
resultType: ResultType.Base64,
|
||||
source,
|
||||
});
|
||||
imageSrc = `data:image/png;base64, ${image.data}`;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div>
|
||||
{#if imageSrc}
|
||||
<img src={imageSrc} alt="Selected" />
|
||||
{/if}
|
||||
<div class="flex">
|
||||
<select class="input" id="dir" bind:value={source}>
|
||||
{#each sources as source}
|
||||
<option value={source.value}>{source.label}</option>
|
||||
{/each}
|
||||
</select>
|
||||
<button class="btn" on:click={get}> Get photo </button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
img {
|
||||
max-width: 100vw;
|
||||
max-height: 80vh;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user