사용자 정의 태그 사용¶
정적 사용¶
- 기존
main.dart를 두 부분으로 분할합니다. 하나는main()이고, 다른 하나는App()MaterialApp위젯입니다. - 각 환경에 해당하는 진입 파일을 생성합니다(예:
main_prod.dart,main_gray.dart). - 해당 환경 진입점에서 사용자 정의 태그를 구성합니다.
/// main_prod.dart
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await FTMobileFlutter.sdkConfig(
datakitUrl: serverUrl,
debug: true,
);
await FTRUMManager().setConfig(
androidAppId: appAndroidId,
iOSAppId: appIOSId,
globalContext: {CUSTOM_STATIC_TAG: "prod_static_tag"},
);
runApp(MyApp());
}
동적 사용¶
RUM 실행 후 globalContext를 다시 설정해도 이미 실행 중인 구성에 즉시 적용되지 않으므로, 동적 태그는 일반적으로 로컬에 저장되었다가 다음 애플리케이션 시작 시 적용됩니다.
- 파일 유형 데이터(예:
shared_preferences의SharedPreferences)를 통해 태그 데이터를 저장하고 SDK 구성 시 읽어옵니다.
final prefs = await SharedPreferences.getInstance();
String customDynamicValue =
prefs.getString("customDynamicValue") ?? "not set";
await FTRUMManager().setConfig(
androidAppId: appAndroidId,
iOSAppId: appIOSId,
globalContext: {CUSTOM_DYNAMIC_TAG: customDynamicValue},
);
- 파일 데이터를 변경하는 메서드를 원하는 위치에 추가합니다.
static Future<void> setDynamicParams(String value) async {
final prefs = await SharedPreferences.getInstance();
prefs.setString(CUSTOM_DYNAMIC_TAG, value);
}
- 마지막으로 애플리케이션을 다시 시작합니다.
주의사항¶
- 특수 키:
track_id- 추적 기능에 사용됩니다. - 사용자가
globalContext를 통해 추가한 사용자 정의 태그가 SDK 자체 태그와 동일한 경우, SDK 태그가 사용자가 설정한 값을 덮어씁니다. - SDK 초기화 구성의
globalContext와 동일한 키를 사용하지 않도록 주의하십시오. 키가 동일한 경우, 초기화 구성의 정적 태그가 동적으로 추가된 태그보다 우선 순위가 높습니다. - 태그 이름에 프로젝트 약어 접두사를 추가하는 것이 좋습니다(예:
df_tag_name). - 공유 규칙에 대한 자세한 내용은 충돌 필드 설명을 참조하십시오.