自定义标签使用¶
本文用于承载 React Native SDK 的全局上下文与自定义标签相关能力。
运行时添加自定义标签¶
使用方法¶
/**
* 添加自定义全局参数。作用于 RUM、Log 数据。
*/
appendGlobalContext(context: object): Promise<void>;
/**
* 添加自定义 RUM 全局参数。作用于 RUM 数据。
*/
appendRUMGlobalContext(context: object): Promise<void>;
/**
* 添加自定义 Log 全局参数。作用于 Log 数据。
*/
appendLogGlobalContext(context: object): Promise<void>;
使用示例¶
FTMobileReactNative.appendGlobalContext({ global_key: 'global_value' });
FTMobileReactNative.appendRUMGlobalContext({ rum_key: 'rum_value' });
FTMobileReactNative.appendLogGlobalContext({ log_key: 'log_value' });
自定义标签使用示例¶
编译配置方式¶
使用 react-native-config 配置多环境,在不同环境中设置对应的自定义标签值。
let rumConfig: FTRUMConfig = {
iOSAppId: iOSAppId,
androidAppId: androidAppId,
monitorType: MonitorType.all,
enableTrackUserAction: true,
enableTrackUserResource: true,
enableTrackError: true,
enableNativeUserAction: false,
enableNativeUserResource: false,
enableNativeUserView: false,
globalContext: { track_id: Config.TRACK_ID },
};
await FTReactNativeRUM.setConfig(rumConfig);
运行时读写文件方式¶
- 通过数据持久化方式,如
AsyncStorage,在初始化 SDK 时读取存储的自定义标签。
let rumConfig: FTRUMConfig = {
iOSAppId: iOSAppId,
androidAppId: androidAppId,
monitorType: MonitorType.all,
enableTrackUserAction: true,
enableTrackUserResource: true,
enableTrackError: true,
enableNativeUserAction: false,
enableNativeUserResource: false,
enableNativeUserView: false,
};
await new Promise(function (resolve) {
AsyncStorage.getItem('track_id', (error, result) => {
if (result === null) {
console.log('获取失败' + error);
} else {
console.log('获取成功' + result);
if (result != undefined) {
rumConfig.globalContext = { track_id: result };
}
}
resolve(FTReactNativeRUM.setConfig(rumConfig));
});
});
- 在任意处添加或改变自定义标签到文件。
AsyncStorage.setItem('track_id', valueString, (error) => {
if (error) {
console.log('存储失败' + error);
} else {
console.log('存储成功');
}
});
- 最后重启应用后生效。
SDK 运行时动态添加¶
在 SDK 初始化完毕之后,使用 FTMobileReactNative.appendGlobalContext(globalContext)、FTMobileReactNative.appendRUMGlobalContext(globalContext)、FTMobileReactNative.appendLogGlobalContext(globalContext) 可以动态添加标签,设置完毕后立即生效。
FTMobileReactNative.sdkConfig(config);
function getInfoFromNet(info: Info) {
const globalContext = { delay_key: info.value };
FTMobileReactNative.appendGlobalContext(globalContext);
}
添加规则请查阅 Android 冲突字段说明。