菜单

Flutter SDK

一、说明

1.功能概述

应用的文案或者运营策略更新经常需要通过发版解决,为了减少开发者频繁更新应用版本,热力引擎推出参数下发功能,通过参数下发可以随时远程调整应用中的参数值实现应用内容更新

2.适用范围

本文档适用于使用 Flutter 来开发的移动端 APP 或产品。 本文档适用于 Android 5.0 及以上的安卓系统,及 iOS 11.0 及以上的 iOS 系统.

二、接入 SDK

由于参数下发 SDK 属于热力引擎 SDK 的一个插件,开发者在接入参数下发 SDK 时不需要再进行配置,只需要将参数下发 SDK 对应的桥文件以及源文件导入到项目即可,具体可参考 Flutter SDK 集成文档

三、SDK 方法说明

1.初始化 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);

2. 设置默认配置

参数下发 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);

3. 设置事件自定义属性

开发者可以为事件设置自定义属性,参数下发 SDK 在请求服务端配置时会带上该属性,用于服务端参数匹配

方法示例

复制代码
void setRemoteConfigEventProperties(Map<String, dynamic> eventProperties)

调用示例

复制代码
Map<String, dynamic> eventProperties = {};
eventProperties['event'] = 'end';
eventProperties['pro'] = "max";
SERemoteConfig().setRemoteConfigEventProperties(eventProperties);

注:给事件设置的自定义属性不支持开发者传入"_"下划线开头的 key 值,SDK 会默认丢弃该条属性

4. 设置用户自定义属性

开发者可以为用户设置自定义属性,参数下发 SDK 在请求服务端配置时会带上该属性,用于服务端参数匹配

方法示例

复制代码
void setRemoteConfigUserProperties(Map<String, dynamic> userProperties)

调用示例

复制代码
Map<String, dynamic> userProperties = {};
userProperties['name'] = 'liming';
userProperties['age'] = "20";
SERemoteConfig().setRemoteConfigUserProperties(userProperties);

注:给用户设置的自定义属性不支持开发者传入"_"下划线开头的 key 值,SDK 会默认丢弃该条属性

5. 获取参数下发配置

参数下发 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());
});

SDK 更新记录

2025-1-17 1.5.1

基于Android 1.2.9.3 iOS 1.2.9.4

2024-12-21 1.5.0

基于Android 1.2.9.3 iOS 1.2.9.3

2024-11-07 1.4.1

基于Android 1.2.9.1 iOS 1.2.9.1

2024-9-23 1.3.3

基于Android 1.2.8.3 iOS 1.2.8.2
•iOS&Android:优化网络请求
•Android:优化在线参数逻辑

2024-2-4 1.2.0

基于Android 1.2.7.0 iOS 1.2.7.0
•Android:优化在线参数分流逻辑

2023-12-28 1.1.3

版本
基于Android 1.2.6.1 iOS 1.2.6.1
•Android:优化在线参数SDK获取所有参数回调方法

2023-12-14 1.1.2

版本
基于Android 1.2.6.0 iOS 1.2.6.0
•iOS&Android:在线参数SDK支持同步获取所有在线参数配置
•iOS&Android:在线参数SDK支持异步获取所有在线参数配置

最近修改: 2025-01-17Powered by