记录桌面深链窗口缺失失败

桌面深链在主窗口缺失时记录 deep_link.window 失败事件

补充桌面深链窗口缺失日志单测

扩展桌面壳配置门禁防止静默吞掉深链事件
This commit is contained in:
2026-06-20 22:25:16 +08:00
parent 037ee24042
commit 03849a5879
2 changed files with 19 additions and 0 deletions
@@ -2461,6 +2461,9 @@ const requiredRustHostSnippets = [
'open_desktop_deep_link_url(window: &WebviewWindow, url: &Url) -> tauri::Result<()>',
'log_desktop_deep_link_current_result',
'desktop host event failed for deep_link.current',
'log_desktop_deep_link_window_missing',
'desktop host event failed for deep_link.window',
'main window unavailable during',
'window.navigate(target_url)?',
'show_main_window(window.app_handle())',
'log_desktop_host_event_result("app_menu.show", show_main_window(app))',
@@ -3286,6 +3289,9 @@ for (const snippet of [
'log_desktop_deep_link_current_result(app.deep_link().get_current())',
'desktop host event failed for deep_link.current',
'desktop_deep_link_current_result_reports_success_empty_and_failure',
'log_desktop_deep_link_window_missing("open")',
'log_desktop_deep_link_window_missing("current")',
'desktop_deep_link_window_missing_reports_failure',
]) {
if (!desktopShellDeepLinkSource.includes(snippet)) {
throw new Error(`desktop shell deep-link registration logging missing ${snippet}`);
@@ -100,10 +100,16 @@ fn log_desktop_deep_link_current_result(
}
}
fn log_desktop_deep_link_window_missing(stage: &str) -> bool {
eprintln!("desktop host event failed for deep_link.window: main window unavailable during {stage}");
false
}
pub(crate) fn register_desktop_deep_link_events(app: &tauri::App) -> tauri::Result<()> {
let app_handle = app.handle().clone();
app.deep_link().on_open_url(move |event| {
let Some(window) = app_handle.get_webview_window("main") else {
log_desktop_deep_link_window_missing("open");
return;
};
@@ -113,6 +119,7 @@ pub(crate) fn register_desktop_deep_link_events(app: &tauri::App) -> tauri::Resu
});
let Some(window) = app.get_webview_window("main") else {
log_desktop_deep_link_window_missing("current");
return Ok(());
};
if let Some(urls) = log_desktop_deep_link_current_result(app.deep_link().get_current()) {
@@ -286,4 +293,10 @@ mod tests {
None
);
}
#[test]
fn desktop_deep_link_window_missing_reports_failure() {
assert!(!log_desktop_deep_link_window_missing("open"));
assert!(!log_desktop_deep_link_window_missing("current"));
}
}