mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-14 09:38:13 +08:00
♻️ 重构米社窗口创建,现在默认只创建一个窗口了
This commit is contained in:
@@ -8,7 +8,9 @@ use tauri_utils::config::WebviewUrl;
|
|||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn create_mhy_client(handle: AppHandle, func: String, url: String) {
|
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;
|
let url_parse;
|
||||||
if url != "" {
|
if url != "" {
|
||||||
url_parse = WebviewUrl::External(url.parse().unwrap());
|
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"
|
|| func == "web_act"
|
||||||
|| url.starts_with("https://webstatic.mihoyo.com/ys/event/e20220303-birthday/index.html")
|
|| url.starts_with("https://webstatic.mihoyo.com/ys/event/e20220303-birthday/index.html")
|
||||||
{
|
{
|
||||||
option.width = 1280.0;
|
win_width = 1280.0;
|
||||||
option.height = 720.0;
|
win_height = 720.0;
|
||||||
}
|
}
|
||||||
let window_find = handle.get_webview_window("mhy_client");
|
let window_find = handle.get_webview_window("mhy_client");
|
||||||
if window_find.is_some() {
|
if window_find.is_some() {
|
||||||
@@ -28,10 +30,10 @@ pub async fn create_mhy_client(handle: AppHandle, func: String, url: String) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
WebviewWindowBuilder::new(&handle, "mhy_client", url_parse)
|
WebviewWindowBuilder::new(&handle, "mhy_client", url_parse)
|
||||||
.inner_size(option.width, option.height)
|
.inner_size(win_width, win_height)
|
||||||
.title(option.title)
|
.title("米游社")
|
||||||
.center()
|
.center()
|
||||||
.user_agent(option.user_agent.unwrap().as_str())
|
.user_agent(win_ua)
|
||||||
.menu(menu::create_mhy_menu(handle.clone()))
|
.menu(menu::create_mhy_menu(handle.clone()))
|
||||||
.on_menu_event(move |app, event| menu::handle_menu_event(app, event))
|
.on_menu_event(move |app, event| menu::handle_menu_event(app, event))
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
@@ -16,12 +16,6 @@ pub async fn init_app(app_handle: AppHandle) {
|
|||||||
return;
|
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();
|
app_handle.emit("initApp", ()).unwrap();
|
||||||
unsafe {
|
unsafe {
|
||||||
APP_INITIALIZED = true;
|
APP_INITIALIZED = true;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"productName": "TeyvatGuide",
|
"productName": "TeyvatGuide",
|
||||||
"identifier": "TeyvatGuide",
|
"identifier": "TeyvatGuide",
|
||||||
"version": "0.4.9",
|
"version": "0.5.0",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "pnpm vite:dev",
|
"beforeDevCommand": "pnpm vite:dev",
|
||||||
"beforeBuildCommand": "pnpm vite:build",
|
"beforeBuildCommand": "pnpm vite:build",
|
||||||
@@ -46,20 +46,6 @@
|
|||||||
"width": 1600,
|
"width": 1600,
|
||||||
"height": 900,
|
"height": 900,
|
||||||
"center": true
|
"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": {
|
"security": {
|
||||||
@@ -69,7 +55,7 @@
|
|||||||
"plugins": {
|
"plugins": {
|
||||||
"deep-link": {
|
"deep-link": {
|
||||||
"desktop": {
|
"desktop": {
|
||||||
"schemes": ["teyvatguide"]
|
"schemes": ["teyvatguide", "teyvat"]
|
||||||
},
|
},
|
||||||
"mobile": []
|
"mobile": []
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ class TGClient {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @func getUrl
|
* @func getUrl
|
||||||
* @since Beta v0.3.8
|
* @since Beta v0.5.0
|
||||||
* @desc 获取 url
|
* @desc 获取 url
|
||||||
* @param {string} func - 方法名
|
* @param {string} func - 方法名
|
||||||
* @returns {string} - url
|
* @returns {string} - url
|
||||||
@@ -141,7 +141,7 @@ class TGClient {
|
|||||||
case "sign_in":
|
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";
|
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":
|
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":
|
case "daily_note":
|
||||||
return "https://webstatic.mihoyo.com/app/community-game-records/index.html?bbs_presentation_style=fullscreen#/ys/daily/";
|
return "https://webstatic.mihoyo.com/app/community-game-records/index.html?bbs_presentation_style=fullscreen#/ys/daily/";
|
||||||
case "tavern":
|
case "tavern":
|
||||||
@@ -452,7 +452,14 @@ class TGClient {
|
|||||||
await TGLogger.Info(`[TGClient][open][${func}] ${url}`);
|
await TGLogger.Info(`[TGClient][open][${func}] ${url}`);
|
||||||
const windowFind = webviewWindow.WebviewWindow.getByLabel("mhy_client");
|
const windowFind = webviewWindow.WebviewWindow.getByLabel("mhy_client");
|
||||||
if (windowFind !== null) {
|
if (windowFind !== null) {
|
||||||
await windowFind.destroy();
|
try {
|
||||||
|
await windowFind.destroy();
|
||||||
|
} catch (e) {
|
||||||
|
showSnackbar({
|
||||||
|
text: `[TGClient][open] ${e}`,
|
||||||
|
color: "error",
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
await core.invoke<InvokeArg>("create_mhy_client", { func, url });
|
await core.invoke<InvokeArg>("create_mhy_client", { func, url });
|
||||||
await this.loadJSBridge();
|
await this.loadJSBridge();
|
||||||
|
|||||||
Reference in New Issue
Block a user