mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-04-26 09:20:18 +08:00
feat(deep-link): 支持通过 store 协议直接打开应用详情
添加对 legacy store 协议格式的支持,当收到 spk://store/category/pkgname 格式的 deep link 时,忽略 category 直接使用 pkgname 查找并打开应用详情。如果应用未找到,则回退到搜索模式。
This commit is contained in:
23
src/App.vue
23
src/App.vue
@@ -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();
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user