应用的文案或者运营策略更新经常需要通过发版解决,为了减少开发者频繁更新应用版本,热力引擎推出在线参数功能,通过在线参数可以随时远程调整应用中的参数值实现应用内容更新。
在线参数SDK插件使用时,依赖快应用SDK。
在正式开始数据接入之前,需要提前准备一些接入过程中需要的参数、准备在线参数SDK插件包,下面说明如何获取这些信息。
详见快应用 SDK 集成文档。
点击以下链接下载在线参数SDK插件包。(提供umd和es两种格式包)
https://sdk.solar-engine.com/quickappabtest/SolarEngine-quickappabtest-SDK-1.3.0.zip
由于在线参数SDK属于热力引擎SDK的一个插件,所以在线参数SDK的初始化是依赖于热力引擎SDK的。开发者可以通过热力引擎SDK的配置方法来控制是否启用在线参数SDK并使用在线参数SDK的相关功能。
SDK以umd方式构建,支持多种加载方式。下面列出常用加载方式:
如果是ES Modules的开发环境,请引入es格式文件,否则请引入umd格式文件。
import SESDK from './quickapp-cn-sesdk-umd.js'
import quickappabtestPlugin from './sesdk-quickappabtest-plugin-umd.js';
// 如果打包环境强制使用ES Modules方式,请引入es格式文件。
// import SESDK from './quickapp-cn-sesdk-es.js';
// import quickappabtestPlugin from './sesdk-quickappabtest-plugin-es.js';
// 某些平台可能仅支持commonjs方式引入,则需要使用require方式引入
// const SESDK = require('./quickapp-cn-sesdk-umd.js');
// const quickappabtestPlugin = require('./sesdk-quickappabtest-plugin-umd.js');
// 加载在线参数SDK插件
SESDK.use(quickappabtestPlugin);
// 预初始化
SESDK.prevInit(appKey);
// 初始化SDK
SESDK.init(initParams);
initParams参数说明:
参数 | 类型 | 是否必填 | 说明 |
userId | string | 是 | 账户的 userCode |
appKey | string | 是 | 应用的 appKey |
config | Config | 否 | 初始化相关的配置信息 |
初始化配置Config参数说明:
参数 | 类型 | 是否必填 | 说明 |
remoteConfig | RemoteConfig | 否 | 在线参数配置 |
debugModel | boolean | 否 | 是否开启调试,默认false不开启 |
在线参数配置RemoteConfig说明:
参数 | 类型 | 是否必填 | 说明 |
enable | boolean | 否 | 是否初始化在线参数SDK,默认为false |
mergeType | number(0|1) | 否 | 服务端跟SDK配置合并策略0-使用服务端配置跟用户本地已有缓存配置合并,默认。1-使用服务端配置跟用户默认配置合并 |
customIDProperties | object | 否 | 自定义ID,跟用户在后台设置的使用自定义ID匹配对应;属性格式要求见快应用 SDK下自定义属性要求。 |
customIDEventProperties | object | 否 | 自定义ID事件属性值,跟用户在后台设置的使用自定义ID事件属性值匹配对应; 属性格式要求见快应用 SDK下自定义属性要求。 |
customIDUserProperties | object | 否 | 自定义ID用户属性值,跟用户在后台设置的使用自定义ID用户属性值匹配对应;; 属性格式要求见快应用 SDK下自定义属性要求。 |
pollingInterval | number | 否 | 轮询间隔时间(单位:分),区间:30分钟-24小时,默认30分钟。 |
requestTimeout | number | 否 | 请求配置接口的超时时间(单位:毫秒), 默认60*1000毫秒 |
调用示例:
SESDK.init({
appKey: '666666',
userId: '888888',
config: {
debugModel: true,
remoteConfig: {
pollingInterval: 30,
enable: true,
mergeType: 1,
customIDProperties: { a: 1 },
customIDEventProperties: { e: 1 },
customIDUserProperties: { u: 1 },
requestTimeout:5000
},
},
});
注:开发者使用在线参数SDK需要通过API预置一份默认配置配置到App中,SDK使用该默认配置用来兜底,具体配置方法参考下方设置默认配置方法。
在线参数SDK需要开发者预置一份默认配置到用户app中,方便在线参数SDK使用此默认配置进行兜底操作。
注意:需要在插件注册之后(SESDK.use),SDK初始化之前(SESDK.init)设置
方法示例:
SESDK.setRemoteDefaultConfig(defaultConfig)
参数相关:
参数名称 | 参数含义 | 参数类型 | 是否必传 |
defaultConfig | 开发者传入的默认配置 | Array<object> | 是 |
defaultConfig示例:
// defaultConfig 默认配置,一个参数配置为一个对象,格式如下:
SESDK.setRemoteDefaultConfig([
{
name : "k1", // 配置项的名称,对应fastFetchRemoteConfig接口的参数 key
type : 1, // 配置项的类型 1 string、2 number、3 boolean、4 json
value : "v1", // 配置项的值
}
]);
开发者可以为事件设置自定义属性(属性格式要求见 快应用 SDK 下自定义属性要求),在线参数SDK在请求服务端配置时会带上该属性,用于服务端参数匹配。
方法示例:
SESDK.setRemoteConfigEventProperties(properties)
注意:需要在插件注册之后(SESDK.use),SDK初始化之前(SESDK.init)设置
参数相关:
参数名称 | 参数含义 | 参数类型 | 是否必传 |
properties | 事件自定义属性 | object | 是 |
调用示例code:
SESDK.setRemoteConfigEventProperties({
k1: v1,
k2: v2
});
开发者可以为用户设置自定义属性(属性格式要求见 快应用 SDK 下自定义属性要求),在线参数SDK在请求服务端配置时会带上该属性,用于服务端参数匹配。
方法示例:
SESDK.setRemoteConfigUserProperties(properties)
注意:需要在插件注册之后(SESDK.use),SDK初始化之前(SESDK.init)设置
参数相关:
参数名称 | 参数含义 | 参数类型 | 是否必传 |
properties | 用户自定义属性 | object | 是 |
调用示例code:
SESDK.setRemoteConfigUserProperties({
k1: v1,
k2: v2
});
在线参数SDK获取在线参数配置分为两种情况,一种是同步获取方法,通过此方法开发者可以获取返回结果。另一种是异步获取方法,返回结果需要等待回调完成才可以获取。
注:通过同步或异步方式获取参数时,sdk 会触发上报用户命中试验的事件,所以获取参数的时机应该在用户到达试验场景时读取(获取参数代表用户到达试验场景,用户命中该参数对应的试验),请勿提前读取参数
方法示例:
SESDK.fastFetchRemoteConfig(key);
注:必须在SDK初始化之后才可获取,可调用SESDK.ready方法判断SDK是否完成初始化。
参数相关:
参数名称 | 参数含义 | 参数类型 | 是否必传 |
key | 在线参数key,跟用户在后台配置参数key对应 | string | 是 |
返回值类型: id
调用示例code:
SESDK.ready(function(){
const v = SESDK.fastFetchRemoteConfig("k1");
// 取值之后的操作
})
方法示例:
SESDK.asyncFetchRemoteConfig(key); //返回Promise
参数相关:
参数名称 | 参数含义 | 参数类型 | 是否必传 |
key | 在线参数key,跟用户在后台配置参数key对应 | string | 是 |
调用示例code:
SESDK.asyncFetchRemoteConfig("k1").then(function(value){
// 取值后的操作
})
————————————
2025-03-14 1.3.0
• 跟随主SDK版本对齐
2025-03-13 1.2.9
• 跟随主SDK版本对齐
2025-02-13 1.2.8
• 跟随主SDK版本对齐
2025-01-03 1.2.7
• 跟随主SDK版本对齐
2024-12-10 1.2.4
• 跟随主SDK版本对齐
2024-11-29 1.2.3
• 跟随主SDK版本对齐
2024-11-11 1.2.2
• 跟随主SDK版本对齐
2024-10-31 1.2.1
•增加sdk内部日志上报
2024-08-14 1.1.9
• 跟随主SDK版本对齐
2024-05-22 1.1.8
• 跟随主SDK版本对齐
2024-04-22 1.1.7
• 跟随主SDK版本对齐
2024-04-16 1.1.6