feat(deep-link): 支持通过 store 协议直接打开应用详情

添加对 legacy store 协议格式的支持,当收到 spk://store/category/pkgname 格式的 deep link 时,忽略 category 直接使用 pkgname 查找并打开应用详情。如果应用未找到,则回退到搜索模式。
This commit is contained in:
2026-03-29 13:58:52 +08:00
parent 1e6e776afe
commit 3f9447d2cc
2 changed files with 41 additions and 1 deletions

View File

@@ -1146,7 +1146,28 @@ onMounted(async () => {
window.ipcRenderer.on(
"deep-link-search",
(_event: IpcRendererEvent, data: { pkgname: string }) => {
searchQuery.value = data.pkgname;
// 根据包名直接打开应用详情
const tryOpen = () => {
const target = apps.value.find((a) => a.pkgname === data.pkgname);
if (target) {
openDetail(target);
} else {
// 如果找不到应用,回退到搜索模式
searchQuery.value = data.pkgname;
logger.warn(`Deep link: app ${data.pkgname} not found, fallback to search`);
}
};
if (loading.value) {
const stop = watch(loading, (val) => {
if (!val) {
tryOpen();
stop();
}
});
} else {
tryOpen();
}
},
);