跳转至

自定义标签使用

编译配置方式

可采用创建多 Configurations,使用预编译指令设置不同标签值。

  1. 创建多 Configurations

  1. 设置预设属性来区分不同 Configurations

  1. 使用预编译指令
//Target -> Build Settings -> GCC_PREPROCESSOR_DEFINITIONS 进行配置预设定义
#if PRE
#define Track_id       @"0000000001"
#define STATIC_TAG     @"preprod"
#elif  DEVELOP
#define Track_id       @"0000000002"
#define STATIC_TAG     @"common"
#else
#define Track_id       @"0000000003"
#define STATIC_TAG     @"prod"
#endif

FTRumConfig *rumConfig = [[FTRumConfig alloc]init];
rumConfig.globalContext = @{@"track_id":Track_id,@"static_tag":STATIC_TAG};
... //其他设置操作
[[FTMobileAgent sharedInstance] startRumWithConfigOptions:rumConfig];

也可参考 多环境配置参数 方法进行配置。

运行时读写文件方式

因 RUM 启动后设置的 globalContext 不会生效,用户可自行本地保存,在下次应用启动时进行设置生效。

  1. 通过存文件本地保存,例如 NSUserDefaults,配置使用 SDK 时,在配置处添加获取标签数据的代码。
NSString *dynamicTag = [[NSUserDefaults standardUserDefaults] valueForKey:@"DYNAMIC_TAG"]?:@"NO_VALUE";

FTRumConfig *rumConfig = [[FTRumConfig alloc]init];
rumConfig.globalContext = @{@"dynamic_tag":dynamicTag};
... //其他设置操作
[[FTMobileAgent sharedInstance] startRumWithConfigOptions:rumConfig];
  1. 在任意处添加改变文件数据的方法。
[[NSUserDefaults standardUserDefaults] setValue:@"dynamic_tags" forKey:@"DYNAMIC_TAG"];
  1. 最后重启应用生效。

SDK 运行时添加

在 SDK 初始化完毕之后,使用 [FTMobileAgent appendGlobalContext:globalContext][FTMobileAgent appendRUMGlobalContext:globalContext][FTMobileAgent appendLogGlobalContext:globalContext] 可以动态添加标签,设置完毕后会立即生效。随后,RUM 或 Log 后续上报的数据会自动附带对应标签。

这种使用方式适合延迟获取数据的场景,例如标签数据需要通过登录、接口请求或本地异步初始化之后才能拿到。

使用方法

/// 添加 SDK 全局 tag,作用于 RUM、Log 数据
/// - Parameter context: 自定义数据
+ (void)appendGlobalContext:(NSDictionary <NSString*,id>*)context;

/// 添加 RUM 自定义 tag,作用于 RUM 数据
/// - Parameter context: 自定义数据
+ (void)appendRUMGlobalContext:(NSDictionary <NSString*,id>*)context;

/// 添加 Log 全局 tag,作用于 Log 数据
/// - Parameter context: 自定义数据
+ (void)appendLogGlobalContext:(NSDictionary <NSString*,id>*)context;
/// 添加 SDK 全局 tag,作用于 RUM、Log 数据
/// - Parameter context: 自定义数据
open class func appendGlobalContext(_ context: [String : Any])

/// 添加 RUM 自定义 tag,作用于 RUM 数据
/// - Parameter context: 自定义数据
open class func appendRUMGlobalContext(_ context: [String : Any])

/// 添加 Log 全局 tag,作用于 Log 数据
/// - Parameter context: 自定义数据
open class func appendLogGlobalContext(_ context: [String : Any])

代码示例

//SDK 初始化伪代码
[FTMobileAgent startWithConfigOptions:config];

-(void)getInfoFromNet:(Info *)info{
    NSDictionary *globalContext = @{@"delay_key": info.value};
    [FTMobileAgent appendGlobalContext:globalContext];
}

文档评价

文档内容是否对您有帮助? ×