Appearance
客户端接入说明
职责说明
客户端(App / Web 页面)在整个接入方案中的职责:
- App 启动 / 页面加载时,调用业务服务端接口获取密文
data - 将密文原样传入 SDK,不做任何解密或修改
- 处理获取失败的情况(见启动初始化流程)
第一步:调用业务服务端接口
在 App 启动或页面加载时,发起请求获取密文配置。
Flutter:
dart
// 伪代码 —— 请替换为实际业务接口调用
final response = await yourApi.getSdkConfig();
// response.data 是密文字符串,不要解密
final encryptedData = response.data;Web:
javascript
// 伪代码 —— 请替换为实际业务接口调用
const response = await fetch('/your-api/sdk-config');
const { data: encryptedData } = await response.json();
// encryptedData 是密文字符串,不要解密第二步:将密文原样传入 SDK
获取到密文后,直接传给 SDK,不做任何处理。
Flutter SDK:
dart
// 占位示例,请确认实际 Flutter SDK API
SdkInitConfig.configure(
encryptedConfig: encryptedData,
);
await AnalyticsSdk.instance.init(
appId: 'your_app_id',
// ... 其他参数
);Web SDK:
javascript
WebSDK.init({
appId: 'your_app_id',
uid: '',
channel: 'organic',
encryptedConfig: encryptedData, // 从业务服务端获取的密文,原样传入
});第三步:处理获取失败的情况
获取密文可能失败(网络问题、服务端无缓存等)。客户端需要决策:
| 情况 | 建议处理方式 |
|---|---|
| 获取成功 | 正常将密文传入 SDK,SDK 完成初始化 |
| 获取失败,有本地缓存 | 使用本地缓存的密文传入 SDK(如已实现本地持久化) |
| 获取失败,无本地缓存 | 跳过 SDK 初始化,或使用降级配置,不上报数据 |
完整的启动初始化决策树见 启动初始化流程 →
注意事项
不要解密或修改密文
encryptedData 是密文字符串,客户端不应该尝试解密。任何修改都会导致 SDK 解密失败、初始化异常。
建议在 App 启动早期获取
建议在 App 启动流程的早期阶段(如 splash / launch screen 期间)异步获取密文,避免阻塞主流程,同时确保 SDK 能在业务逻辑执行前完成初始化。