♻️ 重构米社窗口创建,现在默认只创建一个窗口了

This commit is contained in:
目棃
2024-07-06 00:26:37 +08:00
parent f4de7552e1
commit 012efb03ea
4 changed files with 20 additions and 31 deletions

View File

@@ -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()

View File

@@ -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;

View File

@@ -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": []
}

View File

@@ -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();