一、说明
1.功能概述
应用的文案或者运营策略更新经常需要通过发版解决,为了减少开发者频繁更新应用版本,热力引擎推出参数下发功能,通过参数下发可以随时远程调整应用中的参数值实现应用内容更新
2.适用范围
本文档适用于使用 uni-appx 来开发的移动端 APP 或产品。 本文档适用于 Android 5.0 及以上的安卓系统,及 iOS 11.0 及以上的 iOS 系统.
3.SDK 下载
二、接入SDK
由于参数下发SDK属于热力引擎SDK的一个插件,开发者在接入参数下发SDK时不需要再进行配置,只需要将参数下发SDK对应的桥文件以及源文件导入到项目即可,具体可参考uni-appx SDK集成文档
三、SDK 方法说明
1.初始化 SDK
参数下发SDK作为热力引擎SDK的一个插件,参数下发SDK初始化依赖于热力引擎SDK的初始化方法,具体初始化方法参考uni-appx SDK集成文档 中热力引擎SDK初始化方法
remoteConfig参数说明(在线参数功能)
参数名称 | 参数含义 | 参数类型 | 是否必传 |
---|---|---|---|
logEnabled | 是否开启日志打印,默认为关闭状态 | boolean | 否 |
enable | 是否启用在线参数SDK,默认为关闭状态,必传字段 | boolean | 否 |
mergeType |
SDK配置合并策略,默认情况下服务端配置跟本地缓存配置合并,具体释义参考下方参数解释,可选字段 0: app首次启动或版本更新时, 使用服务端配置跟用户默认配置合并,此方法可以清除本地缓存配置 1: 使用服务端配置跟用户本地已有缓存配置合并,在线参数SDK默认合并策略 |
number | 否 |
customIDEventProperties | 自定义ID事件属性值,跟用户在后台设置的使用自定义ID事件属性值匹配对应,可选字段 | object | 否 |
customIDUserProperties | 自定义ID用户属性值,跟用户在后台设置的使用自定义ID用户属性值匹配对应,可选字段 | object | 否 |
在线参数初始化示例
import * as solarengine from '@/uni_modules/solarengine-sdk-us'
const config = {
logEnabled : true,
remoteConfig: {
enable: true
} as solarengine.SEUniRemoteConfig,
initComplete: (code : number) => {
console.log("initComplete---callback")
console.log(code)
},
} as solarengine.SEUniConfig
solarengine.initialize(appkey, config)
2. 设置默认配置
参数下发SDK需要开发者预置一份默认配置到用户app中,方便参数下发SDK使用此默认配置进行兜底操作
参数说明
参数名称 | 参数含义 | 参数类型 | 是否必传 |
---|---|---|---|
setDefaultConfig |
默认配置,默认配置格式需要跟后配配置格式一致
|
array | 是 |
object 字段必须有以下三个:
- name: 参数名
- type: 参数类型,1 string、2 number、3 boolean、4 json obj
- value: 参数值,
调用示例
solarengine.setDefaultConfig(
[
{
"name": "k11",
"type": 1,
"value": "hhh"
},
{
"name": "k22",
"type": 4,
"value": {
"key1": "value1"
}
}
]);
3. 设置事件自定义属性
开发者可以为事件设置自定义属性,参数下发SDK在请求服务端配置时会带上该属性,用于服务端参数匹配
solarengine.setRemoteConfigEventProperties(
{
"k_e1":"v1",
"k_e2":2
}
);
注:给用户设置的自定义属性不支持开发者传入"_"下划线开头的key值,SDK会默认丢弃该条属性
4. 设置用户自定义属性
开发者可以为用户设置自定义属性,参数下发SDK在请求服务端配置时会带上该属性,用于服务端参数匹配
solarengine.setRemoteConfigUserProperties(
{
"k_u1":"v111",
"k_u2":222
}
);
5. 获取参数下发配置
参数下发SDK获取参数下发配置分为两种情况,一种是同步获取方法,通过此方法开发者可以直接获取返回结果。另一种是异步获取方法,返回结果需要等待回调完成才可以获取
注:通过同步或异步方式获取参数时,sdk 会触发上报用户命中试验的事件,所以获取参数的时机应该在用户到达试验场景时读取(获取参数代表用户到达试验场景,用户命中该参数对应的试验),请勿提前读取参数
5.1 同步获取参数下发配置
参数说明
参数名称 | 参数含义 | 参数类型 | 是否必传 |
key | 参数下发key,跟用户在后台配置参数key对应 | string | 是 |
调用示例
let value = solarengine.fastFetchRemoteConfigWithKey("k11");
console.log("[SEUni-App] fastFetchRemoteConfigWithKey value = ",value);
5.2 同步获取所有参数下发配置
返回值:返回所有参数下发配置的值,类型为 object
调用示例
let value = solarengine.fastFetchRemoteConfig();
console.log("[SEUni-App] fastFetchRemoteConfig data = ",value);
5.3 异步获取参数下发配置
参数说明
参数名称 | 参数含义 | 参数类型 | 是否必传 |
---|---|---|---|
key |
参数下发key,跟用户在后台配置参数key对应
|
string | 是 |
callback |
参数下发异步回调 |
callback | 是 |
调用示例
solarengine.asyncFetchRemoteConfigWithKey("key6", (value : any | null) => {
console.log("asyncFetchkey---callbackxx")
console.log(value)
})
5.4 异步获取所有参数下发配置
参数说明
参数名称 | 参数含义 | 参数类型 | 是否必传 |
---|---|---|---|
callback |
参数下发异步回调 |
callback | 是 |
调用示例
solarengine.asyncFetchRemoteConfig((value : UTSJSONObject) => {
console.log("asyncFetchall--xx-callback")
console.log(value)
})