fox: try to restore the processing logic of windows custom scheme

This commit is contained in:
huzibaca 2024-09-16 05:30:29 +08:00
parent b6e1d71b81
commit fc49e4a0da
2 changed files with 11 additions and 3 deletions

View File

@ -46,16 +46,24 @@ pub fn run() {
app.deep_link().register_all()?;
}
#[cfg(target_os = "macos")]
app.listen("deep-link://new-url", |event| {
log::trace!("deep link event: {:?}", event);
tauri::async_runtime::spawn(async move {
let payload = event.payload();
log_err!(resolve_scheme(payload.to_string()).await);
log_err!(resolve_scheme(payload.to_owned()).await);
});
});
tauri::async_runtime::block_on(async move {
resolve::resolve_setup(app).await;
#[cfg(not(target_os = "macos"))]
{
let argvs: Vec<String> = std::env::args().collect();
if argvs.len() > 1 {
let param = argvs[1].as_str();
log_err!(resolve_scheme(argvs[1].to_owned()));
}
}
});
Ok(())

View File

@ -241,7 +241,7 @@ pub async fn resolve_scheme(param: String) -> Result<()> {
.get(2..param.len() - 2)
.ok_or_else(|| anyhow::anyhow!("Invalid string slice boundaries"))?
} else {
bail!("invalid deep link param: {:?}", param)
param.as_str()
};
// 解析 URL