From 274894f5322e374a0ac7e2a90f4247032986cb23 Mon Sep 17 00:00:00 2001 From: BTMuli Date: Sun, 9 Apr 2023 00:50:51 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=94=20add(login):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=20invoke=EF=BC=8C=E6=9A=82=E6=97=B6=E6=B2=A1=E6=9C=89=E6=9B=B4?= =?UTF-8?q?=E5=A5=BD=E7=9A=84=E6=96=B9=E6=A1=88=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/main.rs | 25 ++++++++++++++++++++++++- src/pages/Config.vue | 22 ++++++++++++++++++++-- 2 files changed, 44 insertions(+), 3 deletions(-) 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"); +}