From 09d42fa94f2f0d0f446fc1e689b1109b29f24aa2 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Fri, 8 May 2026 12:00:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(update):=20=E6=B7=BB=E5=8A=A0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=9B=B4=E6=96=B0=E6=A3=80=E6=9F=A5=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=94=A8=E6=88=B7ID=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在UpdateApi接口中新增可选的userId查询参数 - 新增UpdateSDK对象用于统一管理应用更新逻辑 - 实现应用版本检查、下载安装和APK文件处理功能 - 添加下载URL规范化处理逻辑 - 在Flutter SDK中新增update模块实现跨平台更新功能 - 在iOS SDK中新增UpdateSDK类提供应用更新检查接口 - 支持Android和iOS平台的应用商店跳转功能 - 添加React Native SDK的更新检查和插件注册功能 - 实现RN Bundle的检查、下载和缓存机制 --- packages/update/src/UpdateSDK.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/update/src/UpdateSDK.ts b/packages/update/src/UpdateSDK.ts index 18ef9df..c42b68c 100644 --- a/packages/update/src/UpdateSDK.ts +++ b/packages/update/src/UpdateSDK.ts @@ -1,6 +1,6 @@ import AsyncStorage from '@react-native-async-storage/async-storage' import { Linking, Platform } from 'react-native' -import { apiRequest, getConfig } from '@xuqm/rn-common' +import { apiRequest, getConfig, getUserId } from '@xuqm/rn-common' import { getAppVersionCode, getAppVersionName, _devSetAppVersion } from './NativeVersion' export interface PluginMeta { @@ -86,13 +86,18 @@ export const UpdateSDK = { async checkAppUpdate(): Promise { const config = getConfig() const currentVersionCode = getAppVersionCode() + const userId = getUserId()?.trim() + const params: Record = { + appKey: config.appKey, + platform: Platform.OS === 'android' ? 'ANDROID' : 'IOS', + currentVersionCode: String(currentVersionCode), + } + if (userId) { + params.userId = userId + } const result = await apiRequest('/api/v1/updates/app/check', { skipAuth: true, - params: { - appKey: config.appKey, - platform: Platform.OS === 'android' ? 'ANDROID' : 'IOS', - currentVersionCode: String(currentVersionCode), - }, + params, }) return { ...result, downloadUrl: normalizeDownloadUrl(result.downloadUrl) } },