XuqmGroup-RNSDK/packages/common
XuqmGroup b6581adc51 fix: 代码质量清理 — XWebView Pressable/Clipboard、configCrypto 消除 any、UpdateSDK AsyncStorage 优化
- XWebViewView/XWebViewScreen: TouchableOpacity → Pressable
- XWebViewView/XWebViewScreen: Clipboard 改用 @react-native-clipboard/clipboard
- configCrypto.ts: 6 处 any 替换为 SubtleCryptoLike 接口
- UpdateSDK: CachedRnBundle 移除 source 字段,AsyncStorage 仅存版本元数据
- xwebview 添加 @react-native-clipboard/clipboard peerDependency
2026-06-16 14:48:47 +08:00
..
src fix: 代码质量清理 — XWebView Pressable/Clipboard、configCrypto 消除 any、UpdateSDK AsyncStorage 优化 2026-06-16 14:48:47 +08:00
package.json fix: 代码质量清理 — XWebView Pressable/Clipboard、configCrypto 消除 any、UpdateSDK AsyncStorage 优化 2026-06-16 14:48:47 +08:00
README.md docs: 添加 CLAUDE.md + 各 package README + 架构总览 + 模块待开发说明 2026-06-16 12:14:52 +08:00
tsconfig.json feat: rn-update 进度回调 + rn-xwebview JSBridge + rn-log v0.1.0 新建 2026-06-16 12:10:28 +08:00

@xuqm/rn-common

XuqmGroup RN SDK 核心模块。负责 SDK 初始化、HTTP 请求、Token 管理、设备信息、XWebView Bridge、API hooks。

安装

yarn add @xuqm/rn-common @react-native-async-storage/async-storage

Peer dependenciesreact >= 18react-native >= 0.76axios >= 1.0.0

初始化

方式 A — 配置文件自动初始化(推荐)

在宿主项目中配置 Babel alias @xuqm/autoinit-config → 加密配置文件:

// metro.config.js
config.resolver.extraNodeModules = {
  '@xuqm/autoinit-config': './path/to/your.xuqmconfig',
};

SDK 在 import 时自动调用 initWithConfigFile(),App 无需任何 init 代码。

方式 B — 手动初始化

import { XuqmSDK } from '@xuqm/rn-common'

await XuqmSDK.initialize({ appKey: 'xxx' })               // 公有平台
await XuqmSDK.initialize({ appKey: 'xxx', platformUrl: 'https://xxx' })  // 私有化
await XuqmSDK.awaitInitialization()                        // 等待配置拉取

API

初始化

API 说明
XuqmSDK.initialize(opts) 初始化,拉取平台配置
XuqmSDK.awaitInitialization() 等待异步初始化完成
isInitialized() 检查 SDK 是否就绪
getConfig() 获取已解析的平台配置

用户信息

API 说明
XuqmSDK.setUserInfo(info) 设置用户信息,触发所有子 SDK 登录
XuqmSDK.setUserInfo(null) 登出,触发全局登出
getUserId() 获取当前 userId
getUserInfo() 获取当前用户信息
setUserId(id) 直接设置 userId内部用

HTTP

API 说明
apiRequest(url, options?) 带 Bearer token 的 HTTP 请求
configureHttp(opts) 覆盖 HTTP 基础配置
_getToken() 获取当前 token内部用
_saveToken(token) 保存 token内部用
_clearToken() 清除 token内部用

设备

API 说明
getDeviceId() 获取设备稳定 UUID
getDeviceInfo() 获取设备品牌/型号/系统信息
detectPushVendor() 检测设备推送厂商

XWebView Bridge

API 说明
openXWebView(url, options?) 打开 WebView
setXWebViewController(controller) 设置全局 WebView 控制器
getXWebViewConfig() 获取当前 WebView 配置
XWebViewControl WebView 控制器类

API Hooks

API 说明
useApi(method, url, opts?) React hook带 loading/error 的 API 调用
usePageApi(method, url, opts?) React hook分页 API
useRequest(opts?) React hook通用请求
setGlobalApiErrorHandler(handler) 设置全局 API 错误处理

UI

API 说明
showToast(msg) 显示 toast
showAlert(title, msg) 显示 alert
showConfirm(title, msg) 显示确认对话框
ScaledImage 等比缩放图片组件

常量

常量 说明
DEFAULT_TENANT_PLATFORM_URL 默认公有平台地址
DEFAULT_IM_WS_URL 默认 IM WebSocket 地址