From 076455944eda20cad6a820fa66dafb3b2505a2f2 Mon Sep 17 00:00:00 2001 From: jacy-dukang Date: Sun, 12 Jul 2026 16:24:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(partner):=20=E4=BF=AE=E6=AD=A3=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E9=80=89=E5=9B=BE=20JSSDK=20=E7=AD=BE=E5=90=8D=20URL?= =?UTF-8?q?=20=E5=90=AB=20query=20=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 录店页 ?step= 变化时重新 wx.config,微信内上传仅走 chooseImage 接口。 Co-authored-by: Cursor --- .../src/components/OssUploadField.tsx | 53 +++++----------- packages/weixin-sdk/src/chooseImage.ts | 1 + packages/weixin-sdk/src/jssdk.ts | 60 ++++++++++--------- .../src/modules/common/wechat.controller.ts | 8 ++- 4 files changed, 54 insertions(+), 68 deletions(-) diff --git a/apps/h5-partner/src/components/OssUploadField.tsx b/apps/h5-partner/src/components/OssUploadField.tsx index 84b6990..2e12feb 100644 --- a/apps/h5-partner/src/components/OssUploadField.tsx +++ b/apps/h5-partner/src/components/OssUploadField.tsx @@ -39,10 +39,6 @@ function formatWechatUploadError(e: unknown): string { return msg; } -function shouldFallbackToNativePicker(msg: string): boolean { - return /permission|denied|接口未就绪|signature|JSSDK|签名校验|invalid signature|config:fail|未授权/i.test(msg); -} - function acceptsImages(accept: string) { return accept.includes('image'); } @@ -93,6 +89,7 @@ export default function OssUploadField({ useEffect(() => { if (!useWechatPicker || needsAuth) return; + weixinSdk.reset(); void weixinSdk.init().catch(() => { /* 点击上传时会再次初始化 */ }); @@ -135,10 +132,6 @@ export default function OssUploadField({ } } - function openNativeFilePicker() { - inputRef.current?.click(); - } - async function pickWechatImage() { setUploading(true); setError(''); @@ -150,21 +143,9 @@ export default function OssUploadField({ count: 1, sourceType: ['album', 'camera'], }); - if (!files) { - openNativeFilePicker(); - return; - } - if (!files[0]) return; + if (!files?.[0]) return; await uploadSelectedFile(files[0]); }); - } catch (e) { - const msg = e instanceof Error ? e.message : '无法打开相册'; - if (/cancel/i.test(msg)) return; - if (shouldFallbackToNativePicker(msg)) { - openNativeFilePicker(); - return; - } - throw e; } finally { setUploading(false); } @@ -186,16 +167,12 @@ export default function OssUploadField({ } catch (e) { const msg = e instanceof Error ? e.message : '无法打开相册'; if (/cancel/i.test(msg)) return; - if (shouldFallbackToNativePicker(msg)) { - openNativeFilePicker(); - return; - } showUploadError(formatWechatUploadError(e)); } return; } - openNativeFilePicker(); + inputRef.current?.click(); } const isImage = mediaType === 'IMAGE' && value; @@ -225,17 +202,19 @@ export default function OssUploadField({ )} - { - const file = e.target.files?.[0]; - if (file) void uploadSelectedFile(file); - }} - /> + {!useWechatPicker && ( + { + const file = e.target.files?.[0]; + if (file) void uploadSelectedFile(file); + }} + /> + )} {isImage ? (