应用的文案或者运营策略更新经常需要通过发版解决,为了减少开发者频繁更新应用版本,热力引擎推出参数下发功能,通过参数下发可以随时远程调整应用中的参数值实现应用内容更新
本文档适用于使用 Flutter 来开发的移动端 APP 或产品。 本文档适用于 Android 5.0 及以上的安卓系统,及 iOS 11.0 及以上的 iOS 系统.
由于参数下发 SDK 属于热力引擎 SDK 的一个插件,开发者在接入参数下发 SDK 时不需要再进行配置,只需要将参数下发 SDK 对应的桥文件以及源文件导入到项目即可,具体可参考 Flutter SDK 集成文档
参数下发 SDK 作为热力引擎 SDK 的一个插件,参数下发 SDK 初始化依赖于热力引擎 SDK 的初始化方法,具体初始化方法参考 Flutter SDK 集成文档中热力引擎 SDK 初始化方法
方法示例
static void initialize(String appkey, String userId, SolarEngineConfig config)
RCConfig 参数说明
参数名称 | 参数含义 | 参数类型 | 是否必传 |
---|---|---|---|
enable | 是否启用在线参数SDK,默认为关闭状态,必传字段 | bool | 是 |
mergeType | SDK配置合并策略,默认情况下服务端配置跟本地缓存配置合并,具体释义参考下方参数解释,可选字段 | MergeType | 否 |
customIDProperties | 自定义ID,跟用户在后台设置的使用自定义ID匹配对应 | Map<String, dynamic> | 否 |
customIDEventProperties | 自定义ID事件属性值,跟用户在后台设置的使用自定义ID事件属性值匹配对应,可选字段 | Map<String, dynamic> | 否 |
customIDUserProperties | 自定义ID用户属性值,跟用户在后台设置的使用自定义ID用户属性值匹配对应,可选字段 | Map<String, dynamic> | 否 |
customIDEventProperties | 自定义ID设备属性值,跟用户在后台设置的使用自定义ID设备属性值匹配对应,可选字段 | Map<String, dynamic> | 否 |
mergeType(合并策略)介绍
参数名称 | 参数含义 |
---|---|
WITH_USER | app首次启动或版本更新时, 使用服务端配置跟用户默认配置合并,此方法可以清除本地缓存配置 |
WITH_CACHE | 使用服务端配置跟用户本地已有缓存配置合并,在线参数SDK默认合并策略 |
调用示例
String appkey = "";
String userId = "";
SolarEngineConfig config = SolarEngineConfig();
config.logEnabled = true;
SERemoteConfigData rcConfig = SERemoteConfigData();
rcConfig.enable = true;
rcConfig.logEnabled = true;
rcConfig.customIDProperties = {
"key": "customID",
"value": "androidID"
};
rcConfig.customIDEventProperties = {
"key": "customEventID",
"value": "_appStart"
};
rcConfig.customIDUserProperties = {
"key": "customUserID",
"value": "Topic"
};
config.remoteConfigData = rcConfig;
SolarEngine.initialize(appkey, userId, config);
参数下发 SDK 需要开发者预置一份默认配置到用户 app 中,方便参数下发 SDK 使用此默认配置进行兜底操作
方法示例
void setRemoteDefaultConfig(List<dynamic> defaultConfigs)
调用示例
List<dynamic> data = [
{"name": "key1", "type": 2, "value": 1},
{"name": "key2", "type": 2, "value": 0}
];
SERemoteConfig().setRemoteDefaultConfig(data);
开发者可以为事件设置自定义属性,参数下发 SDK 在请求服务端配置时会带上该属性,用于服务端参数匹配
方法示例
void setRemoteConfigEventProperties(Map<String, dynamic> eventProperties)
调用示例
Map<String, dynamic> eventProperties = {};
eventProperties['event'] = 'end';
eventProperties['pro'] = "max";
SERemoteConfig().setRemoteConfigEventProperties(eventProperties);
注:给事件设置的自定义属性不支持开发者传入"_"下划线开头的 key 值,SDK 会默认丢弃该条属性
开发者可以为用户设置自定义属性,参数下发 SDK 在请求服务端配置时会带上该属性,用于服务端参数匹配
方法示例
void setRemoteConfigUserProperties(Map<String, dynamic> userProperties)
调用示例
Map<String, dynamic> userProperties = {};
userProperties['name'] = 'liming';
userProperties['age'] = "20";
SERemoteConfig().setRemoteConfigUserProperties(userProperties);
注:给用户设置的自定义属性不支持开发者传入"_"下划线开头的 key 值,SDK 会默认丢弃该条属性
参数下发 SDK 获取参数下发配置分为两种情况,一种是同步获取方法,通过此方法开发者可以直接获取返回结果。另一种是异步获取方法,返回结果需要等待回调完成才可以获取
注:通过同步或异步方式获取参数时,sdk 会触发上报用户命中试验的事件,所以获取参数的时机应该在用户到达试验场景时读取(获取参数代表用户到达试验场景,用户命中该参数对应的试验),请勿提前读取参数
5.1 同步获取参数下发配置
方法示例
Future<String?> fastFetchRemoteConfig(String paramKey)
参数说明
参数名称 | 参数含义 | 参数类型 | 是否必传 |
---|---|---|---|
key | 参数下发key,跟用户在后台配置参数 key 对应 | string | 是 |
返回值:返回 key 对应的 value 值,类型为 string
调用示例
String? result = await SERemoteConfig().fastFetchRemoteConfig("key_1");
5.2 同步获取所有参数下发配置
方法示例
Future<Map?> fastFetchRemoteConfigAll() async
调用示例
// 返回值result为Map类型
Map? result = await SERemoteConfig().fastFetchRemoteConfigAll();
print(result.toString());
5.3 异步获取参数下发配置
方法示例
void asyncFetchRemoteConfig(String paramKey, OnRemoteConfigReceivedData receivedData)
参数说明
参数名称 | 参数含义 | 参数类型 | 是否必传 |
---|---|---|---|
key | 参数下发key,跟用户在后台配置参数 key 对应 | string | 是 |
callback | callback | OnRemoteConfigReceivedData | 是 |
调用示例
SERemoteConfig().asyncFetchRemoteConfig(key, (result) {
print(result);
});
5.4 异步获取所有参数下发配置
方法示例
void asyncFetchRemoteConfigAll(OnRemoteConfigReceivedAllData receivedData)
调用示例
SERemoteConfig().asyncFetchRemoteConfigAll((result) {
// result为Map类型
print(result.toString());
});
基于Android 1.2.9.3 iOS 1.2.9.4
基于Android 1.2.9.3 iOS 1.2.9.3
基于Android 1.2.9.1 iOS 1.2.9.1
基于Android 1.2.8.3 iOS 1.2.8.2
•iOS&Android:优化网络请求
•Android:优化在线参数逻辑
基于Android 1.2.7.0 iOS 1.2.7.0
•Android:优化在线参数分流逻辑
版本
基于Android 1.2.6.1 iOS 1.2.6.1
•Android:优化在线参数SDK获取所有参数回调方法
版本
基于Android 1.2.6.0 iOS 1.2.6.0
•iOS&Android:在线参数SDK支持同步获取所有在线参数配置
•iOS&Android:在线参数SDK支持异步获取所有在线参数配置