SDK 初始化¶
基础配置¶
由于第一个显示的视图 NSViewController 的 viewDidLoad 方法、NSWindowController 的 windowDidLoad 方法调用要早于 AppDelegate applicationDidFinishLaunching,为避免第一个视图的生命周期采集异常,建议在 main.m 文件中进行 SDK 初始化。
// main.m 文件
#import "FTMacOSSDK.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 本地环境部署、Datakit 部署
FTSDKConfig *config = [[FTSDKConfig alloc] initWithDatakitUrl:datakitUrl];
// 使用公网 DataWay 部署
// FTSDKConfig *config = [[FTSDKConfig alloc] initWithDatawayUrl:datawayUrl clientToken:clientToken];
config.enableSDKDebugLog = YES;
[FTSDKAgent startWithConfigOptions:config];
}
return NSApplicationMain(argc, argv);
}
创建 main.swift 文件,删除 AppDelegate.swift 中 @main 或 @NSApplicationMain
import Cocoa
import FTMacOSSDK
let delegate = AppDelegate()
NSApplication.shared.delegate = delegate
let config = FTSDKConfig(datakitUrl: datakitUrl)
// 使用公网 DataWay 部署
// let config = FTSDKConfig(datawayUrl: datawayUrl, clientToken: clientToken)
config.enableSDKDebugLog = true
FTSDKAgent.start(withConfigOptions: config)
_ = NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv)
| 属性 | 类型 | 必须 | 含义 |
|---|---|---|---|
datakitUrl |
NSString |
是 | Datakit 访问地址,例子:http://10.0.0.1:9529,端口默认 9529,安装 SDK 设备需能访问这地址。注意:datakit 和 dataway 配置两者二选一 |
datawayUrl |
NSString |
是 | 公网 DataWay 访问地址,例子:http://10.0.0.1:9528,端口默认 9528,安装 SDK 设备需能访问这地址。注意:datakit 和 dataway 配置两者二选一 |
clientToken |
NSString |
是 | 认证 token,需要与 datawayUrl 同时使用 |
enableSDKDebugLog |
BOOL |
否 | 设置是否允许打印日志,默认 NO |
env |
NSString |
否 | 设置采集环境,默认 prod,支持自定义,也可根据提供的 FTEnv 枚举通过 -setEnvWithType: 方法设置 |
service |
NSString |
否 | 设置所属业务或服务的名称,影响 Log 和 RUM 中 service 字段数据,默认 df_rum_macos |
globalContext |
NSDictionary |
否 | 添加自定义标签,添加规则请查阅 自定义标签使用 |
用户的绑定与注销¶
使用方法¶
/// 绑定用户信息
///
/// - Parameters:
/// - Id: 用户Id
/// - userName: 用户名称(可选)
/// - userEmail: 用户邮箱(可选)
/// - extra: 用户的额外信息(可选)
- (void)bindUserWithUserID:(NSString *)Id userName:(nullable NSString *)userName userEmail:(nullable NSString *)userEmail extra:(nullable NSDictionary *)extra;
/// 注销当前用户
- (void)unbindUser;
代码示例¶
[[FTSDKAgent sharedInstance] bindUserWithUserID:USERID];
// or
[[FTSDKAgent sharedInstance] bindUserWithUserID:USERID userName:USERNAME userEmail:USEREMAIL];
// or
[[FTSDKAgent sharedInstance] bindUserWithUserID:USERID userName:USERNAME userEmail:USEREMAIL extra:@{EXTRA_KEY:EXTRA_VALUE}];
[[FTSDKAgent sharedInstance] unbindUser];
FTSDKAgent.sharedInstance().bindUser(withUserID: USERID)
// or
FTSDKAgent.sharedInstance().bindUser(withUserID: USERID, userName: USERNAME, userEmail: USEREMAIL)
// or
FTSDKAgent.sharedInstance().bindUser(withUserID: USERID, userName: USERNAME, userEmail: USEREMAIL, extra: [EXTRA_KEY: EXTRA_VALUE])
FTSDKAgent.sharedInstance().unbindUser()
关闭 SDK¶
使用 FTSDKAgent 关闭 SDK。