Skip to content

客户端接入说明 ​

职责说明 ​

客户端(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 能在业务逻辑执行前完成初始化。