跳转至

SDK 初始化

基础配置

由于第一个显示的视图 NSViewControllerviewDidLoad 方法、NSWindowControllerwindowDidLoad 方法调用要早于 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 设备需能访问这地址。注意:datakitdataway 配置两者二选一
datawayUrl NSString 公网 DataWay 访问地址,例子:http://10.0.0.1:9528,端口默认 9528,安装 SDK 设备需能访问这地址。注意:datakitdataway 配置两者二选一
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;
/// 绑定用户信息
///
/// - Parameters:
///   - Id: 用户Id
///   - userName: 用户名称(可选)
///   - userEmail: 用户邮箱(可选)
///   - extra: 用户的额外信息(可选)
open func bindUser(withUserID Id: String, userName: String?, userEmail: String?, extra: [AnyHashable : Any]?)

/// 注销当前用户
open func 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。

使用方法

/// 关闭 SDK 内正在运行对象
- (void)shutDown;
/// 关闭 SDK 内正在运行对象
func shutDown()

代码示例

// 如果动态改变 SDK 配置,需要先关闭,以避免错误数据的产生
[[FTSDKAgent sharedInstance] shutDown];
// 如果动态改变 SDK 配置,需要先关闭,以避免错误数据的产生
FTSDKAgent.sharedInstance().shutDown()

文档评价

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