diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index d2f712ac..4043c0ac 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,10 +1,33 @@ // Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] -use tauri::Manager; +#[tauri::command] +async fn mys_login(handle: AppHandle) { + // 创建新窗口 + let mys_window = WindowBuilder::new( + &handle, + "mys-login", /* the unique window label */ + WindowUrl::External("https://bbs.mihoyo.com/ys/".parse().unwrap()), + ) + .build() + .unwrap(); + // 执行 js 代码 + let js_code = " + var cookie = document.cookie; + if(cookie == null || cookie == ''){ + alert('请在该网页登录后关闭窗口再试'); + } else { + prompt('请复制以下内容', `mys-login:${cookie}`); + } + "; + mys_window.eval(js_code).ok().unwrap(); +} + +use tauri::{AppHandle, Manager, WindowBuilder, WindowUrl}; fn main() { tauri::Builder::default() + .invoke_handler(tauri::generate_handler![mys_login]) .setup(|app| { #[cfg(debug_assertions)] // only include this code on debug builds { diff --git a/src/pages/Config.vue b/src/pages/Config.vue index c80d8049..19bf62b2 100644 --- a/src/pages/Config.vue +++ b/src/pages/Config.vue @@ -98,6 +98,11 @@ + + + 路径 @@ -127,7 +132,7 @@ import { getBuildTime } from "../utils/TGBuild"; import TLoading from "../components/t-loading.vue"; import TConfirm from "../components/t-confirm.vue"; // tauri -import { dialog, fs, app, os } from "@tauri-apps/api"; +import { dialog, fs, app, os, tauri } from "@tauri-apps/api"; // store import { useAppStore } from "../store/modules/app"; import { useHomeStore } from "../store/modules/home"; @@ -209,6 +214,11 @@ function tryConfirm (oper: string) { confirmOper.value = "delApp"; confirmShow.value = true; break; + case "getCookie": + confirmText.value = "请根据新窗口的提示操作。"; + confirmOper.value = "getCookie"; + confirmShow.value = true; + break; } } @@ -224,6 +234,9 @@ async function doConfirm (oper: string) { case "delApp": await initAppData(); break; + case "getCookie": + await getCookie(); + break; default: break; } @@ -289,11 +302,16 @@ async function submitHome () { return; } // 设置 - await homeStore.setShowValue(show); + homeStore.setShowValue(show); snackbarText.value = "已修改!"; snackbarColor.value = "success"; snackbar.value = true; } + +// 获取 Cookie +async function getCookie () { + await tauri.invoke("mys_login"); +}