SDK 初始化¶
本文用于承载 iOS SDK 初始化与运行时能力相关内容。
基础配置¶
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
// SDK FTMobileConfig 设置
// 本地环境部署、Datakit 部署
//FTMobileConfig *config = [[FTMobileConfig alloc]initWithDatakitUrl:datakitUrl];
// 使用公网 DataWay 部署
FTMobileConfig *config = [[FTMobileConfig alloc]initWithDatawayUrl:datawayUrl clientToken:clientToken];
//config.enableSDKDebugLog = YES; //debug 模式
config.compressIntakeRequests = YES;
//启动 SDK
[FTMobileAgent startWithConfigOptions:config];
//...
return YES;
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// SDK FTMobileConfig 设置
// 本地环境部署、Datakit 部署
//let config = FTMobileConfig(datakitUrl: url)
// 使用公网 DataWay 部署
let config = FTMobileConfig(datawayUrl: datawayUrl, clientToken: clientToken)
//config.enableSDKDebugLog = true //debug 模式
config.compressIntakeRequests = true //上报数据压缩
FTMobileAgent.start(withConfigOptions: config)
//...
return true
}
| 属性 | 类型 | 必须 | 含义 |
|---|---|---|---|
| datakitUrl | NSString | 是 | 本地环境部署(Datakit)上报 URL 地址,例子:http://10.0.0.1:9529,端口默认 9529,安装 SDK 设备需能访问该地址。注意:datakitUrl 和 datawayUrl 配置两者二选一 |
| datawayUrl | NSString | 是 | 公网 DataWay 上报 URL 地址,从 [用户访问监测] 应用中获取,例子:https://open.dataway.url,安装 SDK 设备需能访问这地址。注意:datakitUrl 和 datawayUrl 配置两者二选一 |
| clientToken | NSString | 是 | 认证 token,需要与 datawayUrl 同时使用 |
| enableSDKDebugLog | BOOL | 否 | 设置是否允许打印日志。默认 NO |
| env | NSString | 否 | 设置采集环境。默认 prod,支持自定义,也可根据提供的 FTEnv 枚举通过 -setEnvWithType: 方法设置 |
| service | NSString | 否 | 设置所属业务或服务的名称。影响 Log 和 RUM 中 service 字段数据。默认:df_rum_ios |
| globalContext | NSDictionary | 否 | 添加自定义标签。添加规则请查阅 此处 |
| groupIdentifiers | NSArray | 否 | 需要采集的 Widget Extensions 对应的 AppGroups Identifier 数组。若开启 Widget Extensions 数据采集,则必须设置 App Groups,并将 Identifier 配置到该属性中 |
| autoSync | BOOL | 否 | 是否在采集数据后自动同步到服务器。默认 YES。当为 NO 时使用 [[FTMobileAgent sharedInstance] flushSyncData] 自行管理数据同步 |
| syncPageSize | int | 否 | 设置同步请求条目数。范围 [5,),注意:请求条目数越大,代表数据同步占用更大的计算资源,默认为 10 |
| syncSleepTime | int | 否 | 设置同步间歇时间。范围 [0,5000],默认不设置 |
| enableDataIntegerCompatible | BOOL | 否 | 需要与 web 数据共存情况下,建议开启。此配置用于处理 web 数据类型存储兼容问题 |
| compressIntakeRequests | BOOL | 否 | 对上传同步数据进行 deflate 压缩,SDK 1.5.6 以上版本支持这个参数,默认关闭 |
| enableLimitWithDbSize | BOOL | 否 | 开启使用 DB 限制总缓存大小功能。注意:开启之后 FTLoggerConfig.logCacheLimitCount 及 FTRUMConfig.rumCacheLimitCount 将失效。SDK 1.5.8 以上版本支持该参数 |
| dbCacheLimit | long | 否 | DB 缓存限制大小。范围 [30MB,),默认 100MB,单位 byte,SDK 1.5.8 以上版本支持该参数 |
| dbDiscardType | FTDBCacheDiscard | 否 | 设置数据库中数据丢弃规则。默认 FTDBDiscard。FTDBDiscard 当数据数量大于最大值时,丢弃追加数据;FTDBDiscardOldest 当数据大于最大值时,丢弃老数据。SDK 1.5.8 以上版本支持该参数 |
| dataModifier | FTDataModifier | 否 | 对单个字段进行更改。SDK 1.5.16 以上支持,使用示例请看 数据采集脱敏 |
| lineDataModifier | FTLineDataModifier | 否 | 对单条数据数据进行更改。SDK 1.5.16 以上支持,使用示例请看 数据采集脱敏 |
| remoteConfiguration | BOOL | 否 | 是否开启数据采集的远程配置功能,默认不开启。开启之后,SDK 初始化或应用热启动会触发数据更新。SDK 1.5.17 以上支持。Datakit 版本要求 >=1.60 或使用公网 DataWay |
| remoteConfigMiniUpdateInterval | int | 否 | 设置远程动态配置最小更新间隔,单位秒,默认 12 小时。SDK 1.5.17 以上支持 |
| remoteConfigFetchCompletionBlock | FTRemoteConfigFetchCompletionBlock | 否 | 远程配置结果回调,用于接收拉取结果并支持自定义调整配置模型。SDK 1.5.19 以上支持,使用示例请看 这里 |
用户的绑定与注销¶
使用 FTMobileAgent 绑定用户信息与注销当前用户。
/// 绑定用户信息,可以在用户登录成功后调用此方法用来绑定用户信息
///
/// - Parameters:
/// - Id: 用户Id
/// - userName: 用户名称(可选)
/// - userEmail: 用户邮箱(可选)
/// - extra: 用户的额外信息(可选)
- (void)bindUserWithUserID:(NSString *)Id userName:(nullable NSString *)userName userEmail:(nullable NSString *)userEmail extra:(nullable NSDictionary *)extra;
/// 注销当前用户,可以在用户退出登录后调用此方法来解绑用户信息
- (void)unbindUser;
/// 绑定用户信息,可以在用户登录成功后调用此方法用来绑定用户信息
///
/// - Parameters:
/// - Id: 用户Id
/// - userName: 用户名称(可选)
/// - userEmail: 用户邮箱(可选)
/// - extra: 用户的额外信息(可选)
open func bindUser(withUserID Id: String, userName: String?, userEmail: String?, extra: [AnyHashable : Any]?)
/// 注销当前用户,可以在用户退出登录后调用此方法来解绑用户信息
open func unbindUser()
extra 添加规则注意事项请查阅 此处。
运行时能力¶
关闭 SDK¶
使用 FTMobileAgent 关闭 SDK 时,请务必在主线程中调用,否则可能引发线程安全问题。如果动态改变 SDK 配置,需要先关闭,以避免错误数据的产生。
清理 SDK 缓存数据¶
使用 FTMobileAgent 清理未上报的缓存数据。
主动同步数据¶
使用 FTMobileAgent 主动同步数据。
FTMobileConfig.autoSync = NO时,才需要自行进行数据同步。
主动同步动态配置¶
动态配置相关能力已拆分至 动态配置。