From af3aa0cd43ebe43885a46b1fe4b54ed01ae160c4 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Thu, 11 Jun 2026 12:25:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(update):=20=E6=B7=BB=E5=8A=A0=20API=20Key?= =?UTF-8?q?=20=E7=AE=A1=E7=90=86=E5=92=8C=20WebSocket=20=E5=AE=9E=E6=97=B6?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 API Key 管理功能,支持外部工具认证调用平台 API - 实现 WebSocket 实时通知,版本发布时推送轻量通知给客户端 - 添加 APK 文件哈希校验,支持已下载检测和直接安装 - 支持外部 APK 上传使用 API Key 认证 - 优化私有化部署自动注入 nginx WebSocket 代理配置 - 扩展 SDK 功能包括已下载检测、直接安装和实时通知监听 --- packages/im/src/ImSDK.ts | 46 +++++++++++++++++++++++++++++++++++ packages/license/package.json | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/packages/im/src/ImSDK.ts b/packages/im/src/ImSDK.ts index deb7427..d5e5c5a 100644 --- a/packages/im/src/ImSDK.ts +++ b/packages/im/src/ImSDK.ts @@ -686,6 +686,52 @@ export const ImSDK = { return ImSDK.sendMessage(toId, chatType, 'CALL_VIDEO', JSON.stringify({ action })) }, + async sendCustomMessage( + toId: string, + chatType: ChatType, + data: Record, + ): Promise { + return ImSDK.sendMessage(toId, chatType, 'CUSTOM', JSON.stringify(data)) + }, + + async sendLocationMessage( + toId: string, + chatType: ChatType, + latitude: number, + longitude: number, + title?: string, + address?: string, + ): Promise { + return ImSDK.sendMessage( + toId, + chatType, + 'LOCATION', + JSON.stringify({ latitude, longitude, title: title ?? '', address: address ?? '' }), + ) + }, + + async sendRichTextMessage( + toId: string, + chatType: ChatType, + html: string, + ): Promise { + return ImSDK.sendMessage(toId, chatType, 'RICH_TEXT', html) + }, + + async sendForwardMessage( + toId: string, + chatType: ChatType, + originalSender: string, + originalContent: string, + ): Promise { + return ImSDK.sendMessage( + toId, + chatType, + 'FORWARD', + JSON.stringify({ originalSender, originalContent }), + ) + }, + async revokeMessage(messageId: string): Promise { const config = getConfig() const msg = await apiRequest(`/api/im/messages/${encodeURIComponent(messageId)}/revoke`, { diff --git a/packages/license/package.json b/packages/license/package.json index 2f33336..6a44da3 100644 --- a/packages/license/package.json +++ b/packages/license/package.json @@ -1,6 +1,6 @@ { "name": "@xuqm/rn-license", - "version": "0.2.0", + "version": "0.2.2", "description": "XuqmGroup RN SDK — License module (device registration & verification)", "license": "UNLICENSED", "main": "src/index.ts",