mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-12 09:18:14 +08:00
♻️ 重构米社窗口创建,现在默认只创建一个窗口了
This commit is contained in:
@@ -8,7 +8,9 @@ use tauri_utils::config::WebviewUrl;
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn create_mhy_client(handle: AppHandle, func: String, url: String) {
|
||||
let mut option = handle.config().app.windows.get(1).unwrap().clone();
|
||||
let mut win_width = 400.0;
|
||||
let mut win_height = 800.0;
|
||||
let win_ua = "Mozilla/5.0 (Linux; Android 12) Mobile miHoYoBBS/2.72.2";
|
||||
let url_parse;
|
||||
if url != "" {
|
||||
url_parse = WebviewUrl::External(url.parse().unwrap());
|
||||
@@ -19,8 +21,8 @@ pub async fn create_mhy_client(handle: AppHandle, func: String, url: String) {
|
||||
|| func == "web_act"
|
||||
|| url.starts_with("https://webstatic.mihoyo.com/ys/event/e20220303-birthday/index.html")
|
||||
{
|
||||
option.width = 1280.0;
|
||||
option.height = 720.0;
|
||||
win_width = 1280.0;
|
||||
win_height = 720.0;
|
||||
}
|
||||
let window_find = handle.get_webview_window("mhy_client");
|
||||
if window_find.is_some() {
|
||||
@@ -28,10 +30,10 @@ pub async fn create_mhy_client(handle: AppHandle, func: String, url: String) {
|
||||
return;
|
||||
}
|
||||
WebviewWindowBuilder::new(&handle, "mhy_client", url_parse)
|
||||
.inner_size(option.width, option.height)
|
||||
.title(option.title)
|
||||
.inner_size(win_width, win_height)
|
||||
.title("米游社")
|
||||
.center()
|
||||
.user_agent(option.user_agent.unwrap().as_str())
|
||||
.user_agent(win_ua)
|
||||
.menu(menu::create_mhy_menu(handle.clone()))
|
||||
.on_menu_event(move |app, event| menu::handle_menu_event(app, event))
|
||||
.build()
|
||||
|
||||
@@ -16,12 +16,6 @@ pub async fn init_app(app_handle: AppHandle) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
dbg!("init_app");
|
||||
let _mhy = app_handle.get_webview_window("mhy_client");
|
||||
if _mhy.is_some() {
|
||||
// todo 这里应该延时,否则可能造成 macOS 平台的崩溃
|
||||
_mhy.unwrap().destroy().unwrap();
|
||||
}
|
||||
app_handle.emit("initApp", ()).unwrap();
|
||||
unsafe {
|
||||
APP_INITIALIZED = true;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"productName": "TeyvatGuide",
|
||||
"identifier": "TeyvatGuide",
|
||||
"version": "0.4.9",
|
||||
"version": "0.5.0",
|
||||
"build": {
|
||||
"beforeDevCommand": "pnpm vite:dev",
|
||||
"beforeBuildCommand": "pnpm vite:build",
|
||||
@@ -46,20 +46,6 @@
|
||||
"width": 1600,
|
||||
"height": 900,
|
||||
"center": true
|
||||
},
|
||||
{
|
||||
"fullscreen": false,
|
||||
"resizable": false,
|
||||
"title": "米游社",
|
||||
"label": "mhy_client",
|
||||
"url": "",
|
||||
"userAgent": "Mozilla/5.0 (Linux; Android 12) Mobile miHoYoBBS/2.70.1",
|
||||
"visible": false,
|
||||
"width": 400,
|
||||
"height": 800,
|
||||
"center": true,
|
||||
"decorations": true,
|
||||
"closable": true
|
||||
}
|
||||
],
|
||||
"security": {
|
||||
@@ -69,7 +55,7 @@
|
||||
"plugins": {
|
||||
"deep-link": {
|
||||
"desktop": {
|
||||
"schemes": ["teyvatguide"]
|
||||
"schemes": ["teyvatguide", "teyvat"]
|
||||
},
|
||||
"mobile": []
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ class TGClient {
|
||||
|
||||
/**
|
||||
* @func getUrl
|
||||
* @since Beta v0.3.8
|
||||
* @since Beta v0.5.0
|
||||
* @desc 获取 url
|
||||
* @param {string} func - 方法名
|
||||
* @returns {string} - url
|
||||
@@ -141,7 +141,7 @@ class TGClient {
|
||||
case "sign_in":
|
||||
return "https://act.mihoyo.com/bbs/event/signin/hk4e/index.html?act_id=e202311201442471&bbs_auth_required=true&bbs_presentation_style=fullscreen&mhy_presentation_style=fullscreen&utm_source=bbs&utm_medium=ys&utm_campaign=icon";
|
||||
case "game_record":
|
||||
return "https://webstatic.mihoyo.com/app/community-game-records/index.html?bbs_presentation_style=fullscreen";
|
||||
return "https://webstatic.mihoyo.com/app/community-game-records/index.html?bbs_presentation_style=fullscreen&game_id=2";
|
||||
case "daily_note":
|
||||
return "https://webstatic.mihoyo.com/app/community-game-records/index.html?bbs_presentation_style=fullscreen#/ys/daily/";
|
||||
case "tavern":
|
||||
@@ -452,7 +452,14 @@ class TGClient {
|
||||
await TGLogger.Info(`[TGClient][open][${func}] ${url}`);
|
||||
const windowFind = webviewWindow.WebviewWindow.getByLabel("mhy_client");
|
||||
if (windowFind !== null) {
|
||||
try {
|
||||
await windowFind.destroy();
|
||||
} catch (e) {
|
||||
showSnackbar({
|
||||
text: `[TGClient][open] ${e}`,
|
||||
color: "error",
|
||||
});
|
||||
}
|
||||
}
|
||||
await core.invoke<InvokeArg>("create_mhy_client", { func, url });
|
||||
await this.loadJSBridge();
|
||||
|
||||
Reference in New Issue
Block a user