跳转至

Widget Extension 数据采集

Widget Extension 数据采集

数据采集支持类型

  • Logger 自定义日志
  • Trace 链路追踪
  • RUM 数据采集

由于 HTTP Resource 数据是与 View 进行绑定的,所以需要用户手动采集 View 数据。

采集配置

使用 FTExtensionConfig 配置 Widget Extension 采集数据的自动开关和文件共享 Group Identifier,其他配置使用主项目 SDK 中已设配置。

字段 类型 必须 说明
groupIdentifier NSString 文件共享 Group Identifier
enableSDKDebugLog BOOL 否(默认 NO) 设置是否允许 SDK 打印 Debug 日志
enableTrackAppCrash BOOL 否(默认 NO) 设置是否需要采集崩溃日志
enableRUMAutoTraceResource BOOL 否(默认 NO) 设置是否追踪用户网络请求(仅作用于 native http)
enableTracerAutoTrace BOOL 否(默认 NO) 设置是否开启自动 http 链路追踪
memoryMaxCount NSInteger 否(默认 1000 条) 数据保存在 Widget Extension 数量最大值

Widget Extension SDK 使用示例:

let extensionConfig = FTExtensionConfig.init(groupIdentifier: "group.identifier")
extensionConfig.enableTrackAppCrash = true
extensionConfig.enableRUMAutoTraceResource = true
extensionConfig.enableTracerAutoTrace = true
extensionConfig.enableSDKDebugLog = true
FTExtensionManager.start(with: extensionConfig)
FTExternalDataManager.shared().startView(withName: "WidgetDemoEntryView")

同时在主项目中设置 FTMobileConfig 时,必须设置 groupIdentifiers

// 主项目
 FTMobileConfig *config = [[FTMobileConfig alloc]initWithMetricsUrl:url];
 config.enableSDKDebugLog = YES;
 config.groupIdentifiers = @[@"group.com.ft.widget.demo"];
let config = FTMobileConfig.init(metricsUrl: url)
config.enableSDKDebugLog = true
config.groupIdentifiers = ["group.com.ft.widget.demo"]

Widget Extension 采集的数据上传

Widget Extension SDK 中仅实现数据采集,数据上传逻辑交给主项目的 SDK 来实现。采集的数据同步到主项目的时机由用户自定义。

使用方法

// 在主项目中调用
/// Track App Extension groupIdentifier 中缓存的数据
/// - Parameters:
///   - groupIdentifier: groupIdentifier
///   - completion: 完成 track 后的 callback
- (void)trackEventFromExtensionWithGroupIdentifier:(NSString *)groupIdentifier completion:(nullable void (^)(NSString *groupIdentifier, NSArray *events)) completion;
/// Track App Extension groupIdentifier 中缓存的数据
/// - Parameters:
///   - groupIdentifier: groupIdentifier
///   - completion: 完成 track 后的 callback
open func trackEventFromExtension(withGroupIdentifier groupIdentifier: String, completion: ((String, [Any]) -> Void)? = nil)

代码示例

// 在主项目中
-(void)applicationDidBecomeActive:(UIApplication *)application{
    [[FTMobileAgent sharedInstance] trackEventFromExtensionWithGroupIdentifier:@"group.identifier" completion:nil];
}
func applicationDidBecomeActive(_ application: UIApplication) {
   FTMobileAgent.sharedInstance().trackEventFromExtension(withGroupIdentifier: "group.identifier" )
}

文档评价

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