From 282b74c95e974dd33b9cfe1cb76ef02352fcbb23 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sun, 8 Mar 2026 15:25:19 +0800 Subject: [PATCH] support receiving images from the Web Share Target API Level 2 and directly opening AI image recognition on mobile version --- .../mobile/AIImageRecognitionSheet.vue | 8 +++- src/consts/cache.ts | 1 + src/lib/cache.ts | 37 +++++++++++++++++ src/lib/ui/common.ts | 4 +- src/sw.ts | 40 +++++++++++++++++++ src/views/desktop/MainLayout.vue | 13 ++++++ src/views/mobile/HomePage.vue | 20 ++++++++-- vite.config.ts | 15 ++++++- 8 files changed, 130 insertions(+), 8 deletions(-) diff --git a/src/components/mobile/AIImageRecognitionSheet.vue b/src/components/mobile/AIImageRecognitionSheet.vue index 1d8b3b3d..954fdecb 100644 --- a/src/components/mobile/AIImageRecognitionSheet.vue +++ b/src/components/mobile/AIImageRecognitionSheet.vue @@ -70,12 +70,12 @@ const cancelRecognizingUuid = ref(undefined); const imageFile = ref(null); const imageSrc = ref(undefined); -function loadImage(file: File): void { +function loadImage(image: Blob): void { loading.value = true; imageFile.value = null; imageSrc.value = undefined; - compressJpgImage(file, 1280, 1280, 0.8).then(blob => { + compressJpgImage(image, 1280, 1280, 0.8).then(blob => { imageFile.value = KnownFileType.JPG.createFileFromBlob(blob, "image"); imageSrc.value = URL.createObjectURL(blob); loading.value = false; @@ -184,6 +184,10 @@ function onSheetOpen(): void { function onSheetClosed(): void { close(); } + +defineExpose({ + loadImage +});