mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-11 09:08:14 +08:00
🌱 完成外部唤起测试 #42
This commit is contained in:
85
src-tauri/Cargo.lock
generated
85
src-tauri/Cargo.lock
generated
@@ -10,6 +10,7 @@ dependencies = [
|
|||||||
"serde_json",
|
"serde_json",
|
||||||
"tauri",
|
"tauri",
|
||||||
"tauri-build",
|
"tauri-build",
|
||||||
|
"tauri-plugin-deep-link",
|
||||||
"tauri-plugin-sql",
|
"tauri-plugin-sql",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -800,6 +801,15 @@ dependencies = [
|
|||||||
"subtle",
|
"subtle",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "dirs"
|
||||||
|
version = "5.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
|
||||||
|
dependencies = [
|
||||||
|
"dirs-sys",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dirs-next"
|
name = "dirs-next"
|
||||||
version = "2.0.0"
|
version = "2.0.0"
|
||||||
@@ -810,6 +820,18 @@ dependencies = [
|
|||||||
"dirs-sys-next",
|
"dirs-sys-next",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "dirs-sys"
|
||||||
|
version = "0.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"option-ext",
|
||||||
|
"redox_users",
|
||||||
|
"windows-sys 0.48.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dirs-sys-next"
|
name = "dirs-sys-next"
|
||||||
version = "0.1.2"
|
version = "0.1.2"
|
||||||
@@ -1786,6 +1808,19 @@ dependencies = [
|
|||||||
"cfg-if",
|
"cfg-if",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "interprocess"
|
||||||
|
version = "1.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "81f2533f3be42fffe3b5e63b71aeca416c1c3bc33e4e27be018521e76b1f38fb"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"libc",
|
||||||
|
"rustc_version",
|
||||||
|
"to_method",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "io-lifetimes"
|
name = "io-lifetimes"
|
||||||
version = "1.0.11"
|
version = "1.0.11"
|
||||||
@@ -2321,6 +2356,28 @@ dependencies = [
|
|||||||
"objc_id",
|
"objc_id",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "objc-sys"
|
||||||
|
version = "0.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "99e1d07c6eab1ce8b6382b8e3c7246fe117ff3f8b34be065f5ebace6749fe845"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "objc2"
|
||||||
|
version = "0.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d"
|
||||||
|
dependencies = [
|
||||||
|
"objc-sys",
|
||||||
|
"objc2-encode",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "objc2-encode"
|
||||||
|
version = "3.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "objc_exception"
|
name = "objc_exception"
|
||||||
version = "0.1.2"
|
version = "0.1.2"
|
||||||
@@ -2408,6 +2465,12 @@ dependencies = [
|
|||||||
"vcpkg",
|
"vcpkg",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "option-ext"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ordered-stream"
|
name = "ordered-stream"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
@@ -4081,6 +4144,22 @@ dependencies = [
|
|||||||
"tauri-utils",
|
"tauri-utils",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tauri-plugin-deep-link"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4536f5f6602e8fdfaa7b3b185076c2a0704f8eb7015f4e58461eb483ec3ed1f8"
|
||||||
|
dependencies = [
|
||||||
|
"dirs",
|
||||||
|
"interprocess",
|
||||||
|
"log",
|
||||||
|
"objc2",
|
||||||
|
"once_cell",
|
||||||
|
"tauri-utils",
|
||||||
|
"windows-sys 0.48.0",
|
||||||
|
"winreg 0.50.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tauri-plugin-sql"
|
name = "tauri-plugin-sql"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
@@ -4290,6 +4369,12 @@ version = "0.1.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "to_method"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c7c4ceeeca15c8384bbc3e011dbd8fccb7f068a440b752b7d9b32ceb0ca0e2e8"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokio"
|
name = "tokio"
|
||||||
version = "1.32.0"
|
version = "1.32.0"
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ tauri-build = { version = "1.4", features = [] }
|
|||||||
tauri = { version = "1.4", features = ["api-all"] }
|
tauri = { version = "1.4", features = ["api-all"] }
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
|
tauri-plugin-deep-link="0.1.2"
|
||||||
|
|
||||||
[dependencies.tauri-plugin-sql]
|
[dependencies.tauri-plugin-sql]
|
||||||
git = "https://github.com/tauri-apps/plugins-workspace"
|
git = "https://github.com/tauri-apps/plugins-workspace"
|
||||||
|
|||||||
@@ -3,7 +3,21 @@
|
|||||||
|
|
||||||
use tauri::Manager;
|
use tauri::Manager;
|
||||||
|
|
||||||
|
#[tauri::command]
|
||||||
|
// todo 后续优化
|
||||||
|
async fn register_deep_link(app_handle: tauri::AppHandle) {
|
||||||
|
tauri_plugin_deep_link::register(
|
||||||
|
"teyvatguide",
|
||||||
|
move |request| {
|
||||||
|
dbg!(&request);
|
||||||
|
app_handle.emit_all("test_deep_link", request).unwrap();
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
tauri_plugin_deep_link::prepare("teyvatguide");
|
||||||
tauri::Builder::default()
|
tauri::Builder::default()
|
||||||
.plugin(tauri_plugin_sql::Builder::default().build())
|
.plugin(tauri_plugin_sql::Builder::default().build())
|
||||||
.setup(|_app| {
|
.setup(|_app| {
|
||||||
@@ -12,6 +26,7 @@ fn main() {
|
|||||||
_window.open_devtools(); // open the devtools on startup
|
_window.open_devtools(); // open the devtools on startup
|
||||||
Ok(())
|
Ok(())
|
||||||
})
|
})
|
||||||
|
.invoke_handler(tauri::generate_handler![register_deep_link])
|
||||||
.run(tauri::generate_context!())
|
.run(tauri::generate_context!())
|
||||||
.expect("error while running tauri application");
|
.expect("error while running tauri application");
|
||||||
}
|
}
|
||||||
|
|||||||
17
src/App.vue
17
src/App.vue
@@ -16,7 +16,7 @@ import { onBeforeMount, onMounted, ref } from "vue";
|
|||||||
import TSidebar from "./components/app/t-sidebar.vue";
|
import TSidebar from "./components/app/t-sidebar.vue";
|
||||||
import TBackTop from "./components/app/t-backTop.vue";
|
import TBackTop from "./components/app/t-backTop.vue";
|
||||||
// tauri
|
// tauri
|
||||||
import { app, event, fs, window } from "@tauri-apps/api";
|
import { app, event, fs, tauri, window } from "@tauri-apps/api";
|
||||||
// store
|
// store
|
||||||
import { useAppStore } from "./store/modules/app";
|
import { useAppStore } from "./store/modules/app";
|
||||||
// utils
|
// utils
|
||||||
@@ -43,7 +43,10 @@ onBeforeMount(async () => {
|
|||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
// 获取当前主题
|
// 获取当前主题
|
||||||
document.documentElement.className = theme.value;
|
document.documentElement.className = theme.value;
|
||||||
|
await tauri.invoke("register_deep_link");
|
||||||
|
console.info("已注册深度链接!");
|
||||||
await listenOnTheme();
|
await listenOnTheme();
|
||||||
|
await getDeepLink();
|
||||||
});
|
});
|
||||||
|
|
||||||
// 监听主题变化
|
// 监听主题变化
|
||||||
@@ -92,12 +95,24 @@ async function createDataDir(): Promise<void> {
|
|||||||
|
|
||||||
// 初始化数据库
|
// 初始化数据库
|
||||||
async function initData(): Promise<void> {
|
async function initData(): Promise<void> {
|
||||||
|
if (appStore.devEnv) {
|
||||||
|
console.info("开发环境,跳过数据库初始化!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
await TGSqlite.reset();
|
await TGSqlite.reset();
|
||||||
showSnackbar({
|
showSnackbar({
|
||||||
text: "已成功初始化数据库!",
|
text: "已成功初始化数据库!",
|
||||||
});
|
});
|
||||||
console.info("已成功初始化数据库!");
|
console.info("已成功初始化数据库!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getDeepLink(): Promise<void> {
|
||||||
|
console.info("正在监听深度链接!");
|
||||||
|
await event.listen("test_deep_link", (e) => {
|
||||||
|
console.log("深度链接已触发!");
|
||||||
|
console.log(e.payload);
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="css">
|
<style lang="css">
|
||||||
.app-container {
|
.app-container {
|
||||||
|
|||||||
Reference in New Issue
Block a user