数据采集自定义规则¶
View¶
Activity¶
- 需要
FTRUMConfig.setEnableTraceUserView(true)开启状态
FTSdk.initRUMWithConfig(new FTRUMConfig()
.setViewActivityTrackingHandler(new FTViewActivityTrackingHandler() {
@Override
public HandlerView resolveHandlerView(Activity activity) {
String activityName = activity.getClass().getSimpleName();
// 根据 Activity 名称自定义视图名称
if (activityName.startsWith("Main")) {
return new HandlerView("自定义主页面");
} else if (activityName.startsWith("Detail")) {
HashMap<String, Object> properties = new HashMap<>();
properties.put("extra_key", "extra_value");
return new HandlerView("自定义详情页面", properties);
}
// 返回 null 跳过跟踪
return null;
}
})
);
FTSdk.initRUMWithConfig(
FTRUMConfig()
.setViewActivityTrackingHandler(object : FTViewActivityTrackingHandler {
override fun resolveHandlerView(activity: Activity): HandlerView? {
val activityName = activity.javaClass.simpleName
return when {
activityName.startsWith("Main") ->
HandlerView("自定义主页面")
activityName.startsWith("Detail") -> {
val properties = hashMapOf<String, Any>("extra_key" to "extra_value")
HandlerView("自定义详情页面", properties)
}
else -> null // 跳过跟踪
}
}
})
)
Fragment¶
- 需要同时开启
FTRUMConfig.setEnableTraceUserView(true)与FTRUMConfig.setEnableTraceUserViewInFragment(true)
FTSdk.initRUMWithConfig(new FTRUMConfig()
.setViewFragmentTrackingHandler(new FTViewFragmentTrackingHandler() {
@Override
public HandlerView resolveHandlerView(FragmentWrapper fragment) {
String fragmentName = fragment.getSimpleClassName();
// 根据 Fragment 名称自定义视图名称
if (fragmentName.equals("HomeFragment")) {
return new HandlerView("自定义首页片段");
} else if (fragmentName.startsWith("Detail")) {
HashMap<String, Object> properties = new HashMap<>();
properties.put("extra_key", "extra_value");
return new HandlerView("自定义详情片段", properties);
}
// 返回 null 跳过跟踪
return null;
}
})
);
FTSdk.initRUMWithConfig(
FTRUMConfig()
.setViewFragmentTrackingHandler(object : FTViewFragmentTrackingHandler {
override fun resolveHandlerView(fragment: FragmentWrapper): HandlerView? {
val fragmentName = fragment.simpleClassName
return when {
fragmentName == "HomeFragment" ->
HandlerView("自定义首页片段")
fragmentName.startsWith("Detail") -> {
val properties = hashMapOf<String, Any>("extra_key" to "extra_value")
HandlerView("自定义详情片段", properties)
}
else -> null // 跳过跟踪
}
}
})
)
Action¶
- 需要
FTRUMConfig.setEnableTraceUserAction(true)开启状态
FTSdk.initRUMWithConfig(new FTRUMConfig()
.setActionTrackingHandler(new FTActionTrackingHandler() {
@Override
public HandlerAction resolveHandlerAction(ActionEventWrapper actionEventWrapper) {
// 获取操作类型
ActionSourceType actionType = actionEventWrapper.getSourceType();
// 根据操作类型自定义跟踪
if (actionType == ActionSourceType.CLICK_VIEW) {
HashMap<String, Object> properties = new HashMap<>();
properties.put("extra_key", "extra_value");
return new HandlerAction("自定义按钮点击", properties);
} else if (actionType == ActionSourceType.CLICK_LIST_ITEM) {
return new HandlerAction("自定义列表项点击");
}
// 返回 null 跳过跟踪
return null;
}
})
);
FTSdk.initRUMWithConfig(
FTRUMConfig()
.setActionTrackingHandler(object : FTActionTrackingHandler {
override fun resolveHandlerAction(actionEventWrapper: ActionEventWrapper): HandlerAction? {
return when (actionEventWrapper.sourceType) {
ActionSourceType.CLICK_VIEW -> {
val properties = hashMapOf<String, Any>("extra_key" to "extra_value")
HandlerAction("自定义按钮点击", properties)
}
ActionSourceType.CLICK_LIST_ITEM ->
HandlerAction("自定义列表项点击")
else -> null // 跳过跟踪
}
}
})
)
Resource¶
- 需要
FTRUMConfig.setEnableTraceUserResource(true)开启状态