自定义标签使用¶
编译配置方式¶
- 在
build.gradle中创建多个productFlavors来做区分区分标签
android{
//…
productFlavors {
prodTest {
buildConfigField "String", "CUSTOM_VALUE", "\"Custom Test Value\""
//…
}
prodPublish {
buildConfigField "String", "CUSTOM_VALUE", "\"Custom Publish Value\""
//…
}
}
}
- 在
RUM配置中添加对应BuildConfig常量
运行时读写文件方式¶
- 通过存文件类型数据,例如
SharedPreferences,配置使用SDK,在配置处添加获取标签数据的代码。
- 在需要时添加修改文件数据的方法。
3.最后重启应用,详情请见 SDK Demo
SDK 运行时添加¶
在 SDK 初始化完毕之后,使用 FTSdk.appendGlobalContext(globalContext)、FTSdk.appendRUMGlobalContext(globalContext)、FTSdk.appendLogGlobalContext(globalContext) 可以动态添加标签,设置完毕后会立即生效。随后,RUM 或 Log 后续上报的数据会自动附带对应标签。
这种使用方式适合延迟获取数据的场景,例如标签数据需要通过登录、接口请求或本地异步初始化之后才能拿到。
使用方法¶
/**
* 动态设置全局 tag
* @param globalContext
*/
public static void appendGlobalContext(HashMap<String,Object> globalContext)
/**
* 动态设置 RUM 全局 tag
* @param globalContext
*/
public static void appendRUMGlobalContext(HashMap<String,Object> globalContext)
/**
* 动态设置 log 全局 tag
* @param globalContext
*/
public static void appendLogGlobalContext(HashMap<String,Object> globalContext)
/**
* 动态设置全局 tag
* @param globalContext
*/
fun appendGlobalContext(globalContext: HashMap<String, Any>)
/**
* 动态设置 RUM 全局 tag
* @param globalContext
*/
fun appendRUMGlobalContext(globalContext: HashMap<String, Any>)
/**
* 动态设置 log 全局 tag
* @param globalContext
*/
fun appendLogGlobalContext(globalContext: HashMap<String, Any>)
//SDK 初始化伪代码,从网络获取到参数后,再进行标签设置
FTSdk.init()
getInfoFromNet(info){
HashMap<String, Object> globalContext = new HashMap<>();
globalContext.put("delay_key", info.value);
FTSdk.appendGlobalContext(globalContext)
}
代码示例¶
HashMap<String, Object> globalContext = new HashMap<>();
globalContext.put("global_key", "global_value");
FTSdk.appendGlobalContext(globalContext);
HashMap<String, Object> rumGlobalContext = new HashMap<>();
rumGlobalContext.put("rum_key", "rum_value");
FTSdk.appendRUMGlobalContext(rumGlobalContext);
HashMap<String, Object> logGlobalContext = new HashMap<>();
logGlobalContext.put("log_key", "log_value");
FTSdk.appendLogGlobalContext(logGlobalContext);
val globalContext = hashMapOf<String, Any>(
"global_key" to "global_value"
)
FTSdk.appendGlobalContext(globalContext)
val rumGlobalContext = hashMapOf<String, Any>(
"rum_key" to "rum_value"
)
FTSdk.appendRUMGlobalContext(rumGlobalContext)
val logGlobalContext = hashMapOf<String, Any>(
"log_key" to "log_value"
)
FTSdk.appendLogGlobalContext(logGlobalContext)