跳转到内容

环境与配置

获取当前运行环境信息。

const env = await SuperSDK.getEnv();
console.log(env);
// {
// webviewId: "a1b2c3d4",
// versionName: "1.0.0",
// versionCode: 1010203,
// channel: "local_test",
// spid: "ab12cd34", // 替换为控制台签发的真实 spid
// environment: "prod",
// deviceId: "xxx-xxx-xxx",
// platform: "android",
// osVersion: "14",
// deviceModel: "Pixel 8",
// wappVersion: "1.0.0", // 当前 WApp(离线包)版本,非离线包页面为 ""
// wappBuildTime: 1740198896 // 离线包构建时间(秒级时间戳),非离线包页面为 0
// }

setAPIEnvironment(environment) / getAPIEnvironment()

Section titled “setAPIEnvironment(environment) / getAPIEnvironment()”

项目环境对应控制台顶栏的 env(如 prod / staging),决定 settings 拉取与埋点上报归属的环境。

// web 降级模式:运行时切换项目环境(需先 initFallback)
await SuperSDK.setAPIEnvironment('staging');
// 切换后 getHostSettings 请求的 env 参数、reportEvent 的
// basic_data.env 与 X-Super-API-ENV header 均使用新值;
// settings 请求缓存按环境隔离,切回旧环境命中原缓存。
// 读取当前项目环境(Promise<string>;web 未初始化时 resolve "prod")
const env = await SuperSDK.getAPIEnvironment();

规则:

  • 取值限 1–10 位小写字母/数字(^[a-z0-9]{1,10}$),非法值 reject INVALID_ARGUMENT 且状态不变;web 未 initFallback 时 set reject NOT_INITIALIZED
  • 切换前会尽力冲刷旧环境的待发埋点事件,再换值
  • 端内(App 内):setAPIEnvironment 一律 reject UNSUPPORTED —— 端内环境由原生宿主经 SuperSDK.setAPIEnvironment(Android)/ SuperSDKManager.setAPIEnvironment(iOS)控制;getAPIEnvironment 经 getEnv 透传原生当前值
  • initFallback(config) 的 environment 字段仍作为 web 模式的初始环境

获取宿主 App 名称。

const appName = await SuperSDK.getAppName();
// "MyApp"

获取宿主 App 图标(Base64 格式)。

const iconBase64 = await SuperSDK.getAppIcon();
// "data:image/png;base64,iVBOR..."
// 可直接用于 <img src="...">

获取宿主配置信息。configName 是配置名称,不传则端上请求不带 configName 参数。

const hostSettings = await SuperSDK.getHostSettings();
const featureSettings = await SuperSDK.getHostSettings('feature_flags');
// { code: 'SUCCESS', msg: '', data: { ... } } 与服务端 settings 响应形态一致

参数:configName (string, 可选) — 配置名称;不传则请求不带 configName 参数。 返回值:Promise<Object> — 宿主云控响应对象,成功时为 { code, msg, data };data 是配置内容。非端环境下 resolve 空对象 {},不会 reject。

根据 key 获取宿主特定配置。

const config = await SuperSDK.getHostSettingsByKey('feature_flags');
const config = await SuperSDK.getHostSettingsByKey('enabled', 'feature_flags');

参数:key (string) — 配置项的键。 参数:configName (string, 可选) — 配置名称;不传则请求不带 configName 参数。 返回值:Promise<*> — 该 key 对应的宿主配置值;端上会优先查响应根对象,未命中时兼容查 data[key]。非端环境下 resolve null。