From f990b0a1422ed7c94136fcecfe2cb78d0e31727a Mon Sep 17 00:00:00 2001 From: zdl <3489966805@qq.com> Date: Fri, 12 Dec 2025 19:06:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=8F=E7=A8=8B=E5=BA=8F=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E6=94=B9=E7=94=A8=E6=98=8E=E6=96=87=20URL=20Scheme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UrlSchemeLauncher: 使用明文 Scheme 格式,无需后端 API 生成 - HomePage: 修复 path 格式,去掉开头斜杠以匹配小程序后台配置 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../MiniProgramLauncher/UrlSchemeLauncher.js | 33 ++++++++++++++----- src/views/Home/HomePage.tsx | 2 +- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/components/MiniProgramLauncher/UrlSchemeLauncher.js b/src/components/MiniProgramLauncher/UrlSchemeLauncher.js index 59a82ef6..eb861f84 100644 --- a/src/components/MiniProgramLauncher/UrlSchemeLauncher.js +++ b/src/components/MiniProgramLauncher/UrlSchemeLauncher.js @@ -20,9 +20,26 @@ import { Icon, } from '@chakra-ui/react'; import { FiExternalLink, FiCopy, FiCheck } from 'react-icons/fi'; -import { generateUrlScheme, openUrlScheme } from '@services/miniprogramService'; import { isIOSDevice } from './hooks/useWechatEnvironment'; +// 小程序 AppID +const MINIPROGRAM_APPID = 'wx0edeaab76d4fa414'; + +/** + * 生成明文 URL Scheme + * 格式:weixin://dl/business/?appid=APPID&path=PATH&query=QUERY + */ +const generatePlainUrlScheme = (path, query) => { + const params = new URLSearchParams({ + appid: MINIPROGRAM_APPID, + path: path || '', + }); + if (query) { + params.set('query', query); + } + return `weixin://dl/business/?${params.toString()}`; +}; + /** * URL Scheme 跳转组件 * @param {Object} props @@ -54,17 +71,15 @@ const UrlSchemeLauncher = ({ try { setLoading(true); - // 生成 URL Scheme - const result = await generateUrlScheme({ path, query }); + // 生成明文 URL Scheme(不需要后端 API) + const scheme = generatePlainUrlScheme(path, query); + console.log('[UrlSchemeLauncher] 生成的 scheme:', scheme); - if (!result?.openlink) { - throw new Error('生成跳转链接失败'); - } - - setOpenlink(result.openlink); + setOpenlink(scheme); // 尝试直接跳转 - const success = openUrlScheme(result.openlink); + window.location.href = scheme; + const success = true; if (success) { onSuccess?.(); diff --git a/src/views/Home/HomePage.tsx b/src/views/Home/HomePage.tsx index 0e44ad34..c0007dfb 100644 --- a/src/views/Home/HomePage.tsx +++ b/src/views/Home/HomePage.tsx @@ -146,7 +146,7 @@ const HomePage: React.FC = () => { zIndex={1000} >